From what I believe, if you get offended by the word "gay" because you're gay, the n-word because you're black, or other labels, then you just lack pride in who you are.
You are then trivializing the perspective of people who think differently than you and making generalizations about their self-confidence. Perhaps some people value compassion, understanding, equality, and/or respect more than pride. It's also kind of twisted logic to conclude that because somebody would rather have people respect a term which defines them, rather that use it as slander, they somehow lack pride. In fact, that seems to suggest that they
do take pride in who they are and want to defend its validity, rather than take the slight lying down.
As for "****," it's like calling somebody "dumb." Slang has changed the meaning of the words in the English language. You never actually use the word "dumb" to describe someone who has a mental condition.
So because something is slang, it is therefore justified and cannot be offensive? A slang definition of a word does not
change the meaning of a word, but rather adds a new meaning. The old one doesn't just disappear, and the correlation between the two will always exist (because they're attached to the same word). If I decide to start using "tree" as slang for "jerk," does "tree" cease to represent that wooden trunk with the branches and the leaves and whatnot? It also creates a link between the two definitions, because I didn't simply choose tree randomly -- perhaps I'm suggesting that jerks are inanimate and wooden, like trees.
Also, we rarely use "dumb" to refer to mute people (one of its definitions) anymore
because it alternately describes someone of low intelligence (and mute people are not necessarily unintelligent). This is actually a nice parallel to why you should not use the word gay to describe something you don't like.