To the best of my understanding, the difference between "homosexual" and "faggot" is about the difference between "African-American" and "nigger".
Objectively, the meaning is the same; but you wouldn't use the first to insult someone, and you wouldn't use the second in a policy document.