Actually, there is such a glitch, but the reason is different. The laws of logistics still apply. The trick is that, under certain circumstances, the hero's move reserve (initial moves) is not updated. It should be updated whenever the hero's creatures are rearranged, but sometimes it doesn't. I know for sure that scripts for transferring creatures using Alt+Click (or dismissing them from the main game screen using Alt+Shift+Click) do not update the initial moves. This might also be the case in HD.
The point is this:
We were on a swamp, for example, with a speed of 9. We received a Gnoll (via a transfer script), and the initial moves were not updated, so the calculation of how far the hero will move on the next turn is based on the swamp. Naturally, this is not correct. To always be sure about the range, go to the hero and simply rearrange any stack. Exit, and you will see the correct range. By the way, you can observe this in HD - there is a record of the move/initial moves - use this to see if the initial moves have been updated or not.
Справочник по НоММ-4 http://handbookhmm.ru/pamyatka-dlya-heroes-iv.html
Памятка по НоММ-3 http://handbookhmm.ru/pamyatka-dlya-homm-iii.html
и HotA http://handbookhmm.ru/vyishla-obnovlennaya-pamyatka-dlya-homm-iii-hota.html