That is really what's so shit about it all, he does something skeevy and rude, and you protect yourself, but you'll be punished. And I think that's why they do it, they know they'll get away with it and you'll get in trouble. And that's if you even do anything with the threat of being fired hanging over you.
Realistically, punching them in the throat is the only way they'd learn.