I think you made a fundamental error when you described "Arab" as a matter of self-identification rather than an ethnicity, this was doubtless what offended your assailant.
Identity is a touchy subject when that identity is fairly "safe" and prosperous. We had this argument a few months ago about whether you're Dutch or not - turns out your mother is Dutch, so we agreed you definitely were.
What makes an Arab? Wheat makes an Englishman? a Frenchman?
Plenty of people will tell you blood (less so for the Frenchman) and arguing will like to get your teeth knocked out. You may be enlightened and post-ethnic, but you're a career academic, the thing to remember is that OUTSIDE our little fantasy world people don't care about having intelligent debates in the main, they care about food of the table, the price of petrol and who won the footie.
EDIT: Which is not to say that this man was at all justified.
Next time you meet someone like that, don't offer to debate with him because it will just wind him up more. Tell him you're sorry he's offended but you're not going to change your opinion. Use simple words and short sentences, not because he's stupid but because you're not showing off. If he wants to step outside tell him you're quite comfortable inside and don't fancy spending a night in the cells.
Because, lets face it, no good public fight ends before the police arrive.
Bookmarks