Это то, что я сделал, но я совсем не доволен этим.Но он делает свое дело.
$.mobile.hashListeningEnabled = false;
history.go(-history_steps);
...
setTimeout(function() {
$.mobile.hashListeningEnabled = true;
}, 300);
Тайм-аут здесь, чтобы попытаться повторно включить нормальное поведение после реального hashchange
события.
Я был бы очень рад, если бы кто-то мог найти лучшее решение.