На языке ST это примерно если бы вы поменяли местами 2 строки, на LD это поменять местами 2 ветви. Это очень критично. Код совершенно по разному будет работать. Но иногда, если в программе нет замороченных связей, это случайным образом проканывает. Тут у вас не прошёл этот финт, где то эта последовательность выполнения и присвоения переменной портит вам всю логику, но это не баг OL, это реальность...