With gay, on the other hand, gay people call each other gay and are usually okay being labeled as gay. So, it's still in use, and I think it's fine to push back against using it to mean "lame" or whatever.
Finally, you should keep in mind that the author may not be American or familiar with American social trends. "Retarded" might be just fine in South Africa or Australia(I don't know). Similar to how very few Americans would bat an eye at someone using the phrase "spaz out", whereas it is viewed as very offensive in England.