Фактически и++ вообще не обрабатывается, так как запись идёт после чтения
отркбатывает, только успевает вернуть исходное значение, а дальше походу управление в стеке передается медоду и отрабатывает return, и до команды i = i+1; просто не доходит, интересно было бы видеть стек вызвовов