I mean it really depends here on what is being said, where and how. US Law is not cut and dry on that as you seem to be stating. Personally I would acquit anyone for punching a nazi if I was to sit on a Jury and criminal convictions usually require a unanimity to agree beyond a shadow of a doubt.
e.g. If I call someone a racial slur and they punch me, it's not protected speech, them punching me is actually protected.
e.g. If I incite a population to stop the [insert racial or ethnic group] take over through hostile action, I can be cited and arrested.
e.g. If I give anyone reason to fear bodily harm through my words or actions, I can be cited and arrested. Additionally they can defend themselves to a reasonable degree.