I'm not familiar with Sail, but the reason for separate logical operators is that you want short-circuiting behavior. For example, in:
(a != NULL) && a->x
You don't want to right-hand side to be evaluated if the left-hand side is false.