Pretty much. We've had to do it before, chalked it up to poor work attitude and I just started documenting every single incident regardless of the level of intervention required and made him sign each one, and then the day came when his ass finally showed up to work late after about 2 months of setting it up...here's your final check, Gtfo. Wasn't cause of sexual orientation or race cuz that's just fucked up, just the shit this guy talked about in the shop put everyone in a negative mood. Fucking politics all day, we couldn't stand him although he was a phenomenal installer and I personally agreed with most of what he said, just couldn't do it after numerous request for him to "change the station.".If I was a HR person and had to fire someone, I would tell them they performed poorly, no matter what the real reason.
It works the same way in the real world.
So a law prohibiting firing someone for being gay would be quite ineffective.
If an employer wants you gone bad enough, eventually, they are going to fire you, period.