While suspension for an isolated insult is not necessarily fair, I believe the punishment leveled to be appropriate.
Let me explain.
This story will no doubt spread around your school very quickly. This, hopefully, will result in a fostering of an attitude among the students that using derogatory slurs, no matter the audience at hand, is only to be done in special cases(Like a black friend who is clearly fine with you using the old N word, jokingly). Hopefully, your friend will not only be able to tolerate more from asshats without resorting to verbal assault(Hah!) but will become aware of when it is safe to use such language.
Also, the school can claim a zero tolerance attitude, which makes the public viewing of such a school much better.
I would assume this fellow was attempting to provoke a response such as was made by your friend for the purpose OF inflicting some kind of punishment on him.
That being said, I am, in no way, a fan of being politically correct. I have always and will always refer to the mental retarded as such. Although the term is seen as being derogatory, I mean no harm by using the word. I simply feel as if the term is proper and see no reason to stop using it.
I would never have referred to them as retards in front of a teacher, though.
Detention would have been a tad more reasonable.