Переводчик Dalvik ничего не меняет. Компилятор JIT может.
Что действительно странно, так это на устройствах с несколькими ЦП, потому что модель согласованности памяти ARM довольно слабая. В такой среде вы можете наблюдать неупорядоченный доступ к памяти даже с помощью только интерпретатора.
Если в документах JSR-133 (JMM) сказано, что на что-то нельзя полагаться, не полагайтесь на это. : -)