My point still stands. How do you know that I didn't hire you because I hate gays but I tell everyone I didn't hire you because of that one Java question you got wrong. It's very very hard to prove and can be expensive to take to take to court.
People like you with your rosy view of the world make it hard for people with real problems to get by.
http://www.eeoc.gov/facts/qanda.html
http://www.nolo.com/legal-encyclopedia/lawsuits-based-the-hi...
http://www.law.cornell.edu/wex/employment_discrimination