Сделал в коде смешную опечатку - не там поставил скобочку.
В результате оператор || применился для стринга и булена.
Решил посмотреть, а как на самом деле он будет работать для этих операндов и обнаружил какую-то странную логику...
Для начала банальная проверка:

Код:
if ("Hello") trace (true);
else trace (false);
Напишет true.
Теперь мистика:

Код:
trace ("Hello" || true)
Напишет true.

Код:
trace("Hello" || false)
Напишет false.
Как так?