You've got to look at the evaluation of the comparison.
All operators work from left to right with the left operand being compared to the right operand. From there parenthesis take precedence first, so whatever happens in paranethesis will happen before whatever is outside of the parenthesis.
So when we look at comparisons they look like htis:
Code:
left_operand || right_operand
left_operand && right_operand
left_operand ^^ right_operand
...
Now look at what happens when we add parenthesis:
Code:
temp_right_operand = left_operand || right_operand
result = left_operand || temp_right_operand
Now if we expand this code to get right of the temporary variable we get:
Code:
result = left_operand || (left_operand || right_operand)
Just like with our code using the temporary variable we do the first part in parenthesis (equivalent to temp_right_opernad) and then we compare the result of that to the left_operand and store that in the result variable.
To sum it all up:
Operators compare from left to right with the variables/functions/formulas on the immediate left and immediate right of the operator. You have to be careful though because if you don't use parenthesis you code is privy to the order of operations which arguably most people don't know the order of--I don't off the top of my head. So if you want to be safe always use parenthesis.
For example read the GMS2 order of operations
help page.