Если посмотреть на байткод который выдал компилятор ide

Код:
push FALSE
push UNDEF
push UNDEF
push UNDEF
push UNDEF
то видно, что на стадии компиляции произошло сравнение с данными и был записан уже результат, то есть была оптимизация кода.
Вот если бы вы написали

Код AS1/AS2:
var s:String = "ABC"
trace( s == 0 ); // false
trace( s < 0 ); // undefined
trace( s > 0 ); // undefined
trace( s >= 0 ); // true
trace( s <= 0 ); // true
то и результат был бы другой.