Adding to this, in a real situation those variables are probably not going to be nice single letter variables. With longer names the Lisp syntax with unambiguous structure/order of precedence becomes much nicer.
(if (or (and foobar
(some-predicate-p quux)
(= qwerty 432))
(a-long-function-call-with-two-args bar ytr))
...)
Compared to something like: if (foobar &&
somePredicate(quux) &&
(qwerty == 432) ||
aLongFunctionCallWithTwoArgs(bar, ytr)) {
...
}