Возвращаясь к тезису, я даже больше скажу. UB в Стандарте и присутствует как раз для того, чтобы максимально развязать руки оптимизаторам.
Так а если убрать UB из Стандарта, то насколько сильно это свяжет руки оптимизаторам? Действительно ли намертво свяжет и -O3 практически перестанет отличаться от -O0?
Я склонен считать, что современные компиляторы и их бэкенды достаточно мощны, чтобы в среднестатистической программе в большинстве случаев распознавать отсутствие неопределенностей и включать оптимизацию на полную.
То бишь я считаю что введение UB было актуально много лет назад, когда компиляторы и компьютеры были относительно слабыми для таких фокусов.
Добавлено
Более того, я считаю, что большинство оптимизаций основанных на предположении отсутствия UB еще и совершенно бесполезны. Примеры сейчас приведу.