This discussion is worthwhile, but clearly the laws vary greatly from state to state. Further, each situation is equally dependant on the facts at hand, and how those facts are interpreted by the police on scene.
Whatever the case, one is likely to encounter a legal nightmare. Recently, in our county, a 73 year old retired marine war veteran who was having drinks at a restaurant/bar was jumped by a drunk 37 year old lumberjack and beaten to the ground. The marine was injured and dazed but managed to pull his handgun (licensed) and shot the lumber jack as he moved to attack again.
The lumberjack, a known trouble maker with a record, left the scene due to warrants. The police arrived and promptly arrested the marine for felony assault! He was jailed and is spending his meager retirement to pay his own medical bills, bail and significant legal expences. Everyone involved believes he is getting screwed by a prosecutor with political aspirations.
So, "goes to show you never can tell."