Because even for Boolean values '==' and 'or' are not distributive, let
alone for non-Boolean values which you are probably using.
1 == (0 or 0) ====> 1 == 0 ====> 0
(1 or 0) == (1 or 0) ====> 1 == 1 ====> 1
He wants to distribute the == over the or, not vice versa, so that
would be:
(1 == 0) or (1 == 0) ====> 0 or 0 ====> 0
works ;-).
Of course it doesn't work in the general case. E.g.,
0 == (0 or 1) ====> 0 == 1 ====> 0
(0 == 0) or (0 == 1) ====> 1 or 0 ====> 1
more specifically, since ($y or $z) returns $y if $y is not false, and
otherwise $z, it works if $x has a true value.
hp