Being plain rude is a choice. Being homosexual, black etc. isn't.
That being said, I see you're point. However, it still begs the question. How do you legislate what grounds a person has for refusing to do business with someone else? I think people can do business with whoever they want, and the only reason they need to refuse to do business with someone is that they don't want to.
It's like when I get a call from a telemarketer, and they're snobby with me, and I say, "You do realise I can hang up on you at any time right?" I don't need a resason to hang up on them. I can end the call if I want to, for no reason at all. I can end a conversation with another person, by simply not responding to anything they say, for any or no reason whenever I want. I can refuse to do business with someone whenever I want for any or no reason. If I go into a shop and say I'm interested in buying something, do I need a reason to decide not to buy it, or do they need a reason to decide not to sell it? They sell it because they want the money, not because they have to. The government shouldn't force them to sell it to me. They don't need a reason, let alone a valid one. If I said, "I'm gay, and if you don't sell it to me I'll charge you with discrimination," can you see how exploitable that would be?
you should serve everyone
you shouldn't be permitted to cherry pick who you do and don't, that's discrimination.
I hugely disagree with the idea that an owner can serve who they like and not provide a reason. It's a bit like saying you wouldn't give this person a job interview because they're gay, and this one because she's a woman etc. It's taking your beliefs and then acting in a way that isn't fair to everyone.
No I don't think a gun should have been held to their head because they didn't serve them a cake, but they should be sanctioned for it.
Imagine if you owned a bakery and someone came and wanted you to write "Gays are evil" on the cake. Should the government force you to do it even though you don't want to, or should you be allowed to refuse even if they're polite about it? It's you're bakery, why should someone else get to tell you what you have to write on the cake? What if they take it to court and say you won't do it because you're discriminating against their religious belief that homosexuality is a sin?
I think the point is that people are different, and disagree over moral issues, and the government shouldn't interfere in the interest of political correctness. If someone doesn't want to write something on a cake, then go to a different bakery.