I already misposted my suggestion in a wrong
thread, but it really belongs here: In short, what about missile troops simply switching to hold when all possible targets are severely outnumbered by friendly units? (AI decides similar to the mechanism on gem usage.)
I presume that this would be half the way towards "fire and hold", as it reduces death by friendly fire and prevents archers from marching up to meele, yet I would prevent the stalemate. And maybe it does not affect balancing that much as the AI controls the behaviour. Friendly fire is so annoying!