Civilian control of the military is non-negotiable. The moment a general publicly defies the Commander-in-Chief during a war, he's done — Truman was right to fire him.
Yeah, plus it stops the military from getting dragged into politics and turning into its own power base.