Do programmers more often want to do bit operations on equality tests than want to perform equality tests on bit operations? Do we have to blame George Boole for this one, or is this a more recent decision?
Obviously having logical '&&' lower precedence than '==' makes sense. So is the rationale here that '&' and '&&' should be interchangeable (if there are no side effects)? But "a | b & c" is not interchangeable with "a | b && c".