Оптимизатору нельзя объяснить, что мы ждём прерывания в котором данные в переменной изменятся. Волатильность снимает с оптимизатора необходимость думать и он тупо делает, что написано.