Sigh, because, and I hate to have to say this, as far as I see it, none of those words are meant to offend, even when they are used to describe the subjects you speak of. "Mentally retarded," used in that fashion, for example, is a fairly recent invention, and was created to be a more sensitive, politically correct way of referring to people with mental handicaps. An existing word, "retard," was used specifically because of its neutrality. And it was chosen to replace its predecessors, such as moron and idiot, which were also originally chosen as clinical terms, because they had passed through the vernacular and picked up to be used as insults. But as far as I see it, there is no way for that not to happen. Yeah, "retarded" is now being seen as a derogatory term, precisely the opposite of what it was meant to be. So it will be replaced with a new, even more sensitive word... which, in a few generations' time, will also be seen as incredibly insensitive and will be replaced and so on and so forth because it describes an unenviable position in which to be in life.
So bring me an example of someone using those terms to hurt other people, and I'll be right behind you saying that's insensitive and cruel. But it makes me more than a little worried that we've become so fearful that anything that even sounds like something that can be used to be offensive should be encouraged to be banned from use. Insert your own slippery slope argument here, but that's terrifyingly intolerant to me. I'm terrified of this burgeoning world that looks more at the potential for incriminating word choice over actual context. It reminds me of that hullabaloo from a few years ago over the word "niggardly" because it just happens to sound like a really bad word.