Вообще то речь шла об оптимизаторах... Вынос за скобки может привести к такому результату, который не возник бы без оптимизации. Вот и всё.
Давайте просто, забыв на секунду о спекуляциях, скажем, что оптимизации "вынесение за скобки" не существует, а существует оптимизация "вынесение за скобки если <список условий> выполняется" :) Условия же должны быть достаточно строгими, чтобы учитывать настоящие, точные описания того, как арифметика работает на уровне языка, который мы оптимизируем.