Я не понимаю, что непонятно. Именно потому, что такая конструкция так работает (ну ещё приоритеты и группирование остальных операций работает), OO уменьшается только в начале строки, во всех остальных первое выражение в || больше 0 и до второго не доходит.