надо полагать, это пример undefined behaviour.
страшная магия, которая, будучи примененной в продакшене, испортит здоровый сон разработчику.
компилятор джавы, как показано в одном из ответов, добавил временную переменную, чем и обеспечил такое поведение.
Например, если изобразить этот пример на си (gcc), там такой магии не будет. Опять же, полагаю, другой компилятор может поступить иначе.