PhiMed said:
Saying that when people each others "gay" or "******" doesn't mean they think the target of their of their childish ire is truly homosexual is completely irrelevant. The fact is, the insult's use is based on the fact that they think people will be annoyed and insulted to be called gay - in other words, they may think being gay is a bad thing, and/or they may think that other people think it's a bad thing.
This is reinforced by the fact that if words meaning "homosexual" are being regularly adopted as general-use pejoratives ("gay", "******"), it means there are prevailing homophobic attitudes in a community. Words adapted as insults are overwhelmingly things that are unpleasant (e.g. shit), crude (twat), subnormal (retard), contemptible and so on.
It's fair to say the user of such a word is not necessarily homophobic themselves - they may just be a bit dense, following a fashion without thinking, whatever. But you can't avoid the fact that somewhere at the core of these words' use is a negative societal attitude to homosexuality.