Именно! Я именно по этому и сказал, что в этой части наблюдается "недоработка в ОЛ".
Обычно, в компиляторы закладывают оптимизирующий модуль. Тут либо не делали, либо он хромает.
Не знаете как работают компиляторы (и зачем они нужны) -- нечего другим указывать.
Компилятор и нужен именно для того, чтобы последовательность выполнения алгоритма выбирал не автор программы, а компилятор.
Языки типа CFC/SFC/ST/LD/IL последовательность выполнения в железе не задают.