I think that the parentheses force evaluation of the operators inside them.
I suspect the Expression engine is a left-to-right solver that grabs the first TRUE or FALSE result it gets and wants to move to the next part of If/Then/Else.
Forcing the evaluation of the operators makes the expression engine continue to evaluate until it gets to the outside set of parentheses before it declares an expression to be True or False.