I would also like to inquire as to why should the phrase "no homo" be considered offensive and/or racist.
The word "homo" is, in this case, used as an abbreviation for the whole term. It makes sense because "no homo" is something one would say as a quick interjection, a puntualization between statements.
Just like everything, it depends on the context, and how you say it.
Louis CK said something similar about the word "Jew":
"Jew is a funny word because it's the only word that's the polite thing to call a group of people, and the slur for the same group. Most groups have a good and a bad one, theirs it the same word, just with a little stank on it. And it becomes a terrible thing to call a person cause if he's a jew he's fine, but if he's a jeeewww... like, that's all it takes??"
Please, can we stop getting offended on the behalf of others? Seems like it's the trend these days.