Time, place and culture. Doctors can name the private parts of the body without offending people, but you wouldn't use the slang terms in polite conversation. In the 1840's the "N" word that rhymes with "trigger" was simply illiterate, not offensive. It was like saying "ain't". Today you can get your jaw broken, if you use it.
On the other hand, in the 1840's, you would not discuss gay or lesbian love; today you could introduce "Bruce and his partner, Bob" to the Queen of England, over tea. On a lower level, using a lot of the words having to do with private parts could get your jaw broken, if you used them around a lady with a large husband back then; today teens use them all the time.
Hateful words tend to be swear words. The "B" word that rhymes with "witch" is OK if you are a dog breeded talking to another dog breeder, or to a vet. If you compare a lady human to a lady dog via that word, however, it is impolite.
Words about private parts or private bodily functions count. So do racial, ethnic and religious slurs.