U.S. antidiscrimination law outlaws termination on the basis of one or more of several protected categories which include race, religion, ethnicity, gender, sexual orientation, and I believe age.There are other things you can't be fired for, such as taking maternity leave, or conplaining with others about working conditions (if you are the sole complainant, you can be fired).
You can be fired for just about any reason outside of these. And I don't think BDSM or Goreanism count as protected sexual orientations.
Is there not a reasonable argument that he was fired for being an avowed heterosexual? I don't think any company would touch the issue with a ten foot pole.
Hell no they don't. If Mr. Garfield were a salaried employee he would have a juicy lawsuit in his hands.