I actually kind of agree with @-:Undertaker:-; here.
If someone doesn’t wish to provide a service they don’t have to. Granted, the fuss kicked up could have been mellowed by all parties, but you should have the right to refusal based on personal preference. It’ll upset people, but why would the purchasing party want a cake made by homophobes? Get move onto the next place and give them your money instead.
As a gay person actually getting married, I’m always weary and make sure it’s known when enquiring about wedding related things that it will be a same sex marriage. I’ve only had one thing come back and say they weren’t willing to help, and that was for religious reasons. I’m not bitter, they were pleasant enough to explain their case, and I moved on. Discrimination happens for a variety of reasons, and we are never going to combat it in this century, so pick your battles is what I think. It’s not worth it when neither party is happy at the end of it all.