I would guess that it would depend on context.
Since self.condition
is an alias for [self condition]
that call can only be omitted if the compiler can positively assert that [self condition]
has no side effects. If the compiler cannot establish there are no side effects, then the entire statement can be optimized to [self condition];
yielding a slight optimization.
_condition ? NULL : NULL;
should be safely dead stripped since there is no associated method call with possible side effects.