The variables/sub-expressions are first evaluated completely, only then infix analysis will happen. It's exactly like with lists:
(= somelist '(1 2))
...
(somelist 1)
works just like
('(1 2) 1)
does.
As to your second argument, the +-*/ operators are passed as first-class functions, so, there shouldn't be any optimization happening. Worst thing that can happen is that the compiler doesn't understand literal numbers in functional position, or arithmetic operators applied to first-class functions, and signals an error.