Looking at the code, I'm going to have to call bull on this.
What's going on is a little confusing at first glance, but it looks like they just check if you're on or within a positive step of several saved points. One of which is the last position you occupied, and others appear to be entry points where you're dropped onto or taken off of the world map. It also checks if you're within -5 steps of it, which is weird. It seems to give you some amount of grace if you're within 5 steps to the North or West, and 1 step to the East or South. Maybe I'm misreading something, because that seems bizarre. But it's hard to tell with the people who coded these games.
In any case, there's no strictly independent checks on the X or Y position in the random encounter routines, and both would have to be tracked somewhere, independently of the other, to determine the player was moving in a straight line. Furthermore, all I have to do to get encounters without moving (within about 5 frames after exiting the previous encounter) is force the function that does the final random trigger to return 1. That function makes no reference at all to position, and the only two calls it makes are to rand(), for a random number, and to an additional randomizer that also checks if the Champion Rune applies. If you could safely avoid enemies by walking in straight lines, even for a short while, I wouldn't expect to see constant encounters like that while standing still.
Within that random trigger, all it checks is step count, a map grace period, and a couple of other values that don't have anything to do with position or movement so far as I can tell. It's possible that way up the chain, one of them is a flag that indicates straight-line travel, but I didn't see anything like that on initial review. I just don't see this being real. If it is, they went way out of their way to achieve a minimal effect.