If protection against fleeing is needed, then it's the "wall of shields" ability. Everything else is unrealistic.
The problem with peasants is that they are not soldiers, but just random meat that somehow ended up in the army, and of very low quality. In the second Heroes game, at least there were 5 slots out of 6, and peasants could be safely removed from the army, but here you can't just get rid of them. Personally, for me, the problem with peasants is not in the visuals; I've never liked them in any of the games, but in the fact that they are not warriors. They should lower the morale of the allied army just by their presence.