Funny, I always ask myself why they let you pass after you defeat them. I mean, what could you do if they just stayed there? You can't use your pokemon on them, because that's not allowed, you can't really force them to move by means of brute force, as most of the time it would be a adult against child situation, and I really don't think there is a rule where the defeated trainer has to do whatever you ask them to do. I think there was one instance where you defeated a grunt and he just went "guess what, i'm not going to move", but I could be wrong.
What really bothers me with the 2 grunts at the gate is how the whole "if you see another trainer you can force them into battle" only works against you. Why can't I force anyone to have a battle with me? Like, let's say I'm a masochist and want to fight Lance at Lake of Rage, what right does he have to refuse? Let's say that the protagonist doesn't do that because you really are in a hurry to stop Team Rocket, what about your rival in Olivine? What about NPCs that don't fight you but must have at least one pokemon because they are in areas where wild pokemon appear?