Последовательность вычислений не всегда расписана правилами языка, в иных случаях написано "бывает по-всякому". Там, где она расписана, отклонения для volatile не допускаются. Более того, яр даже предупреждает "вот тут у тебя volatile, а последовательность правилами языка не задана, если что, сам дурак".