Here's the thing about that, language changes and there isn't much you can do about it. After all, if we want to be purest, the word "gay" shouldn't offend you at all as it originally had nothing to do with sexual preference. It's meaning changed and it became a term of degredation that lost all attachments to both homosexuality and happiness.
Have you ever used the word gip (or gyp, or however that's spelled) to say that something was a rip off? The term is derived from gypsy and in all technicallity is a racial slur. But you'd be hard pressed to find a user that actually intended to attack gypsies. The same is now becoming true for the word Jew, which annoys the hell out of me, seeing as I'm part Jewish, but what can you do? Most of the people that say "hey, don't be a Jew!" don't even think of it in the sense of degrading a race/religion. Some do, as do some using the word "gay", but for the most part, it's just a matter of language.
Another example are place names like Souix Falls or anything relating to the European name for the Dakota Indians. Souix actuallys means something like dirty rat (I forget the exact translation), but none of the users today mean it that way. It's just engrained in language.
Languages change.
Bookmarks