The nesting is absolutely relevant to producing the semantics.
The following uses deceptive whitespace to suggest a nesting that is contrary to the actual nesting, interfering with understanding:
In C, I would in fact recommend:
#define if3(a, b, c) ((a) ? (c) : (c))
return if3(a < b, -1, if3(a > b, 1, 0));
Fortunately, the ternary pattern doesn't exhibit this problem. So again, this objection doesn't fly.