Потому, что оптимизатор вовсе и не обязан догадываться о поведении процессора в случае переполнения разрядной сетки. Так как это нештатная ситуауця, которая должна отслеживаться разработчиком.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)