Well, Balgruuf stays in Dragonsreach during the battle for Whiterun, too, if you play the SC side. Part of it is gameplay - too much of the end of those battles is scripted and certain NPCs need to be in the right spot when it happens, also the "challenge" of those quests is to fight your way through to where the boss of the scene is waiting.
And from what I can remember, the enemies on the opposite side will just keep spawning until you enter the final cell to face off with the leader of the opposing faction. Something else would have to be scripted to make that stop which would have to involve Ulfric or Tullius (or their seconds) telling them to stop, or else there would have to be a finite number and you'd have to kill all or a percentage of them to trigger the "end" of the battle where only the two top enemies are still standing.
I think in the case of Balgruuf and Ulfric it's as much a matter of them being the local ruler, the place they are in was designed as the "secure location" of last resort for their protection. They might start out the battle outside but as their defenders are driven back they are going to repair into the "keep" because that's part of the purpose of having one. WIth Tullius the same thing could apply as supreme commander of the Legion in Skyrim and there's also the fact that Rikke says he's given up.
Yes, the battles would probably need to be completely redesigned for it to work. But I can sort of understand why people accuses one side or the other for being "cowards", arguing that they hide in their castle (for some reason I have the feeling this is more often used against Ulfric...) - I mean, at the end of the battle you walk in there, and there are no others, just Ulfric slouching in his throne like it's just another day at work, and then Galmar lurking around.
True about Balgruuf as well. At least he had the decency to change into a steel plate armor (which, btw, looks really good on him, I recall) if you play the SC side - on the Legion side he's wearing his usual clothes, which is strange since he actually did some fighting - at least I think so. It's possible he turned up when all the enemies were dead. It was night when I defended Whiterun, so things were a bit confused.
Anyway, I felt the need for a game where I got to kill Imperials and talk to Ulfric, so I took my Breton through Korvanjund. Since she encountered a dragon and a spriggan on the outside, and Galmar and the rest joined in, their numbers were a bit lessened - after Galmar told a couple of soldiers to stand guard in the first main hall, it was just Jelissa, Vilkas, Ralof and Galmar. An awesome little party of four

And I must say, the Jagged Crown really http://i1073.photobucket.com/albums/w384/Auroratiger/Skyrim/JaggedCrown007.jpg http://i1073.photobucket.com/albums/w384/Auroratiger/Skyrim/JaggedCrown012.jpg. (It looked terrible on my Imperial.)