
При некоторых условиях, True or False or False вычисляется в False, при этом (True or False or False) вычисляется в ожидаемое True.
В комментариях также замечают, что был случай когда x := True or True or True также выдавал False
Баг плавающий, и после очистки и пересборки проекта с нуля, он прошел.
Ниже, под спойлером, приведены скриншоты обсуждения
Скрины



Всем пользователям XE5 настоятельно рекомендую покрывать юнит-тестами даже самые очевидные места.