Не... Я не про это, вот смотрите. В математике есть постулат: От перестановки мест слагаемых, сумма не меняется.
С математикой понятно, тут вопросов нет. Другой разговор, когда есть ограничения (а в любом процессоре оно есть). Так как оптимизации предполагают некоторые математические аксиомы для операций (свертывание констант, вынос за скобки и т.д.) мы можем получить следующий оптимизированный код. Я сейчас утрировано и просто, что бы не заморачиваться сложными, реальными примерами:
MAX(INTEGER) - 200 + 100 <- переполнения нет
MAX(INTEGER) + 100 - 200 <- переполнение
И вот такие вопросы и надо знать в первую очередь, так как электронное устройство, в отличие от математического отличается ограничениями на количество оперируемых бит!
От перестановки слагаемых сумма не меняется, когда речь идет, например, о целых числах. А если речь идет о машинной арифметике, то целых чисел там нет. Есть целые по модулю, или с насыщением, или машинные опять же с плавающей точкой, которые не удовлетворяют, кажется, очень многим аксиомам о вещественных числах (коммутативность, ассоциативность, плотность например). Поэтому подход со сравнением "математики " и "реальной жизни " тут совершенно порочен, так как вы сравниваете реальную жизнь с неподходящей для её моделирования математикой.