> Is this normal for an employer to do?

I've swapped 'horror interview' stories with other developers and managers, but I've never heard of this happening.

> I must have said something offensive

Maybe, but only blame yourself for blowing the interview.  
Don't blame yourself for the return plane ticket fiasco.  

This is likely a single person making a big mistake.  
The ones that covered for that mistake afterwards (I assume you talked to multiple people there) also seem culpable to me at this point, but IANAL<sup>1</sup>.

If you made offensive remarks during the interview I would want you not just out of my face, but also out of my town. I would abruptly (but politely) end the interview - *it wouldn't occur to me* to cancel your return flight.

If you totally lied about your experience, I might recommend to my company that we ask you to compensate us for the plane ticket and hotel. But I don't expect most companies ever would pursue it because of the bad PR that could come from it.


----------
<sup>1</sup> IANAL = I Am Not A Lawyer = I believe this is true, but it isn't a legal opinion.