Yay! My first downvotes! The law doesn't prevent anyone from doing anything. It simply prescribes a liability. You can educate someone by saying, "your comment is sexist", to which they will save face and complain about your lack of sense of humor, etc. You can also educate them about the consequences of insulting someone with mild violence, which is far more likely to stick with them. Of course, you can't go around beating people up, and I didn't suggest anything of the sort. Mild violence is a common response to insults. A bruised ego goes a long way in social calibration, which this idiot was clearly missing.
A punch to the face, in a public setting, to someone that you don't really know is (in America at least) a great way to get arrested and sued. Nothing about that escalated situation would be mild.