Once a business is large enough to substantially affect which messages can get attention, if they restrict certain messages, they're restricting speech - speech is no good if you can't get anyone to hear you. Facebook isn't big enough to entirely stifle a message, but they can substantially reduce its reach. That's the problem with corporate control of ads and communication - they act as a filter on which ideas they'll let through.
That answers question 2 - if it's a small store, the person can place the ad in plenty of other places, and it'll still get enough attention. But if the store happens to own 80% of all ad space in the town...
Edit: I should clarify - this is all about ethical should/should not, and (as remarked by the child comment) not meant to imply there currently exists a legal basis to force Facebook to run the ads. It's important not to confuse what the law is, with that we'd like it to be.