Some of this reminds me of a Meme released by a disability support group on Facebook. It read:
Stop discriminating people with special needs.
Obviously it's a perfect example of an oxymoron. The definition of discriminating, "to draw on or highlight differences within a set", is also the core meaning of the term "special". In other words if people have "special needs" then you are in fact discriminating by stating they have "special" needs.
What I'm getting at is that the word "discriminate" has been hijacked by modern pop-culture langauge to mean "treating people badly based on some attribute", which is actually very little to do with the word "discriminate". The statement "blacks are being treated unfairly" is in itself discrimination. A lot of anti-discrimination laws are actually discrimination in themselves. Consider the fair employment requirements for areas such as Northern Ireland where if you require X% of catholics and you are under, you need to employee a catholic over a potentially better protestant candidate or face penalty. Some anti-sexism initiatives do the same. "Women in IT", "Women for this or that"... are highly sexist. The concept is meant as positive discrimination but it's still discrimination.
Similarly, is it legal to be racist? Of course it is. For it not to be legal would require a way to do psychological profiling of people and locking them up if their showed a high tendency toward racism. Thankfully we cannot, yet, make "feeling", "emotion", "thought" or "fantasy" a crime. Further it is core basic human nature to be racist. It is a core, primal, instinctive behaviour. "One of us or one of them?", "Friend or foe?". These are mechanisms that exist well below cognitive thought in our brains. We all discriminate and we all have prejudices. The later take a shorter time to form in your brain than a thought can <20ms. "First impressions"
The key difference is that we humans have higher brain functions which can then over-rule are most basic instincts and that miss treating, excluding or negatively discriminating people based on your prejudices is where the legality risk lies. It would be fairer to just say that being nasty to one another for any reason is wrong and remove the 'ists' completely.
But can we negatively discriminate against criminals? Rapists? Pedos? Ex-cons? People on drugs? Drunk people? Loud people? Stupid people? Where does the line lie? Will we come to a time when an employer is not allowed to discriminate by not employing someone because their tested-in-context intelligence is below what the job requires?
In the bakery case, I am still a bit on the fence. In one hand I can see it is wrong to reject a customer request simply because they are gay, but at the same time I would feel it would be wrong to force businesses to accept business they don't want, regardless of reason. Public services and businesses with public service licenses would be different, but surely businesses should be free to take or not take business for any reason? Other wise it's forced against their will, verging on slavery. Though they do have the option to stop trading.
Overall we are on a neo-liberalism spiralling slope with an entire generation growing up taking their morals from this spiral. Trying to please everyone and ending up pleasing nobody and making a lot more hatred and intolerance in society in the long run. If you fit in the narrow road of what facebook/twitter/this morning/jerry springer says is acceptable then you are fine. Step one foot out of it and you are ridiculed and osterized. Almost like a global cult.
If whatever someone does, does not hurt or hinder someone else's ability to do what they want, then I'm fine with it. Society only needs to intervene when people have conflicting ambitions. So called the "Do no harm" principle.