If I'm a church and I hire someone, then I'm free to fire them according to my doctrinal/conscientious dictates. But, if I've signed a written contract with them, then I'm also bound by that contract. People have that expectation of a church, because churches are know to have specific beliefs and restrictions.
However, if I'm an individual or private business, and I simply hire someone with no in-brief about requirements, then it's not unreasonable for someone to expect fair treatment from me. They should have redress for arbitrary firings. It would be arbitrary for me to bring up unspoken requirements or matters of conscience after the fact.
That employer should owe something like the cost of seeking new employment and the difference between unemployment and the old salary.
I don't think there should be punitive damages for such things. The bottom line is, if there are standards of employment, then they should be above board. Preferably, they should be written. Then if a person signs them knowing their in violation they have only themselves to blame. Likewise, it serves as a red flag for some folks not to work with certain employers.
Race should be handled differently than sexual preference because a person's race is entirely out of their control. I support government laws prohibiting racial discrimination.