Существуют ли оптимизации компилятора, которые могут привести к изменению наблюдаемого поведения программы? Если да, то какие?
Да существуют. Например Copy elision (а также, return value optimization), позволяют избавиться от вызова конструктора копирования, даже если это приводит к изменению наблюдаемого поведения.
Существует всего 2 оптимизации, описанные в стандарте, которые это могут: copy elision и allocation elision and extension.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости