From SemiMBA's blog I learned about this statute, one I find sadly necessary sometimes.
But let's go beyond lawsuits. Should a publicly-held (or even a private) company be able to fire you for something you publish on your blog, or for using a competitor's product, or any other such non-work-related item? In short, my opinion is yes, they should be able to. No companies as identified above should be required to have anyone work for them that they don't want to work there. Yes, it's a little different for government employees--the 1st Amendment doesn't apply to corporations, just governments, for example.
There are some legal reasons a company cannot fire you--you're too old (except in some positions), you're the wrong skin color, etc. Those are law, and companies must abide by them. However, it's important to remember that companies exist for one reason and one reason only--to make money. They don't exist as social service organizations, although too many people expect them to be.
While I personally would give wide legal latitude to companies in the arena of hiring and firing, I'd hope they'd use this latitude judiciously. But there's a tremendous difference between what companies should do and what they should be allowed to do by law.