I don't consider (%a) to be meaningless. If I were to write
if ((%a) ) { echo -a true }
that would be meaningful - it would have the same meaning as if I had only had the one set of parens.
So why is !(%a) not meaningful? (%a) ought to evaluate to the same thing as %a does. In the case of (%a || %b) it would be necessary to include the parentheses.
In my opinion, !(%a && %b) is more readable (and hence better coding) when you want to negate the 'and', and is semantically different to (!%a || !%b), even if it gives the same results. _Clarity_ in code is as useful as correct code.