Naja, AND ist nicht nur ein boolscher Operator, sondern auch ein bitweises AND. Und in der Prioritätenliste kommen diese Operatoren vor den Vergleichsoperatoren (was generell sinnvoll ist, wie ich finde).
Aus
if a=b and c=d then
wird also zuerst ein
if a = e = d then
, und daraus ein
if (Bool) = d then
. Und das schmeckt einer typentreuen Sprache wie Delphi nicht so gut (wenn a,b,c,d Integer o.Ä. sind). Daher muss man bei sowas klammern.
The angels have the phone box.