The law hasn't caught up to today's social standards quite yet. Just like you can fire someone because you don't like how they dress, you can fire someone for being gay, as choice in clothes and sexual orientation aren't "protected classes":
Setting aside the issue of denying to enter contract with somebody because he's gay (to remove any doubt, I think it is stupid), how the absence of laws that prohibit this behavior on the state level make US not "land of the free"? What the word "freedom" means for you?