I'm not really sure why I'm posting. I think we all want to believe we are good judges of character and why would I overlook something so obvious. It seemed almost heroic at the time (fuck knows why).
Probably because back then you were the kind of person who goes to parties where it is normal that they end when the police is called. Punching someone who insults you is the expected reaction there, I'd guess.
As you observed correctly, his reaction would have seemed out of place in a posh restaurant.
It would also have seemed out of place at a different kind of party. The company you keep influences what you consider normal.
Since you now don't consider it heroic or even normal anymore, I think your chances of not repeating the mistake are pretty good.
Being a good judge of character requires some experience. Essentially, what you do is compare people to other people you know, and using your experience to predict future behaviour.
If you exist in social circles where everyone you know and like would react by punching the bloke in the face, then you think that's normal and heroic.
Dh did not retaliate at all (unlike me who was shouting and very upset). It was all very shocking and upsetting but when we talked about it later, DH said that in his experience retaliating after a one off punch like that just lead to a fight and made things worse.
Yeah ... that's the kind of man I am used to.
Whereas with someone who instigates a fight because someone else verbally insulted him, I'd be weirded out. It's just not a thing I am used to.