Can you not just pick up and go to another company for any reason? Why do you believe you deserve all the power in the employment relationship?
if laws are made with common sense, you can't just pick up and leave your company in the shit with half-completed stuff and no time to make a transition just because you don't want to give a warning.
Also there are non-compete agreements etc. so in the end the labor market isn't as free as it should be according to american values.
I think that employers should have the right to fire anyone, but not for futile reasons like this. They must be having a negative impact (and not a one-time impact like meeting a client with an orange shirt just for once), or it must be for monetary reasons, or strategic choices. There also should be a 30 or 60 days warning.
But this freedom should be compensated by a strong social safety net.
In the US there is neither. I personally think it destroys the social tissue, see I'm the 99% protests, poor as shit ghettos, hate politics etc.
I say: give them a warning about the orange shirts.
Firing someone just because they're protesting is stupid either, maybe it was all a big joke. In the doubt, just tell them to go home and change.
Before firing, talk about it. If there's nothing to talk about, go ahead....
You say your ways are better, but in Switzerland, where the quality of life is unarguably higher than in the US (for everyone, rich people can have high quality of life anywere), when you close a plant and fire everyone there are discussions with the social parties and union representatives, to make a social plan, find possible relocations, or try to find someone to sell the company to. Unemployment is low. Economy is competitive.
In Italy and France instead, the unions are just a bunch of hotheads that antagonize employers and everything is about strikes. In Italy the other extreme has been reached: no work mobility because the labor market is full of laws, privileges and unions.
No wonder that this system doesn't work there.
The best solution is in the middle.