Another thought on WalMart: Some people seem to be saying that WalMart has the right to refrain from selling whatever they want. They are a corporation and they can choose what to sell. But to be logically consistent one would also have to say that a corporation can also sell what they want to sell too.
If you think about the nearest property to your home...possibly the street corner that leads to your subdivision for instance, would this same standard apply. What if that corner was purchased by a corporation that wanted to sell sex toys? Do they have that right? If you were to be logically consistent you would have to say that it is their property, their company and they can sell whatever they want.
But let's not even go that far. In a town in South Carolina (Laurens), a small corporation/company opened up a "Confederate and War Memorabilia store". The store is draped outside with six Confederate Battle Flags. Inside they sell a bunch of white supremacist "memorabilia", things that are pretty outrageous and offensive. They put a lot of segregationist posters in the window too. They also sell Nazi war stuff

. The town is mostly embarrassed by this, but there wasn't anything they could do to stop them from setting up shop and now Laurens has become a tourist attraction stop for racists.
Now suppose this kind of a store opened up on that corner that leads to the entrance to your residential community. Who would want that?
What about a salvage yard, or a used car lot with plenty of hubcaps for sale? A strip club, a pawn shop?
I can think of plenty of things that companies could sell in your community that almost anyone would object to if it was in their neighborhood. That is why most businesses don't put their stores in locations that the community will find offensive. They have the right to do so, but they don't want to fight long legal battles.
WalMart can fight the legal battles. The citizens are protesting the opening of a WalMart on many of the same grounds...traffic, eyesore, destruction of the town's image or well being etc.. WalMart doesn't care about whether or not the citizens want them there.
So WalMart may have the right to do whatever it does, and carry or not carry whatever merchandise they want, in a strict sense. But WalMart is violating the covenant between the public and the company by refusing to carry goods they deem immoral or wrong in the same way that another company would CARRY goods that the community would deem to be immoral or wrong.
They force themselves on communities that do not want them there, in the same way that a porn shop would be forcing themselves on a community that did not want them there.
In order to be logically consistent you must allow that a company's rights may not be subservient to community wishes when it comes to the products they carry or don't carry, and the company's rights to locate where it chooses should not be infringed by the community either.