It actually makes perfect sense to me, in that undef and 0 both evaluate to "false" and "false" equals "false." I've programmed Fortran for many years (my first editor was an IBM-029 card punch 8=)); Fortran actually has a dedicated logical operators, .EQV. and .NEQV. to compare Boolean values. Part of the reason for this that some older Fortrans would do something like "x == y" (actually, X .EQ. Y) without any kind of cast: the compiler would just generate the instructions to compare the actual bit sequences. And Fortran's concept of "true" vs "false" can be a trifle confusing. Of course, one could now digress into why -0 != 0, but one shouldn't.
emc
Information about American English usage here and here.
Any Northeastern US area jobs? I'm currently unemployed.