Вы, конечно правы, хотя следует добавить еще и приоритеты операций.
Вообще говоря, правильность реализации компилятора гарантировать никто не может. Поэтому их (компиляторы) и тестируют.
Есть и другой вопрос: "ответ в случае оптимизации" А законна ли такая оптимизация? Компилятор сгенерировал что-то. А это что-то правильно - или насекомое в компиляторе? О котором надо сообщить разработчикам.
То есть я предпочитаю проверять текст на соответствие стандарту. И знать, где используемый мной компилятор стандарту (описанию языка) не соответствует.
Например, чтобы далеко не ходить: какой вариант языков С и С++ реализует Visual Studio? GCC дает четкий исчерпывающий ответ.