I'm an atheist and a secularist. If you run a bakery where a cake with "Hail Satan" on it is not part of your normal product offering, then you should not be required to make it. If you make regular wedding cakes, and you simply refuse to sell one of your existing cake to a gay couple, that's not okay. If you receive any public money or similar for your business, then you should be required to serve all customers. So if you work for a council, or the government, as a registrar, then absolutely you should be required to register gay unions or resign. If you are a minister in a private religion, or an independent civil celebrant, it's up to you whom you choose to preside over. Again, any public money involved, then you cannot discriminate. If your church receives any public funding, and rents its premises from time to time for non-religious events there as many churches do, then it cannot refuse a gay event. If you're a pharmacist and you won't prescribe certain medication due to religious beliefs, you should resign.
You repeatedly express the belief that it's okay to discriminate as long as you don't accept public funds (in certain situations, granted). I don't agree with that. I believe that if you offer a public service, you should not be allowed to discriminate, regardless of your funding. ALL businesses receive benefits derived from public funds (roads, fire protection, etc etc), so I don't see why public-fund CASH should make a difference.
I get that if you are offering an essential service. Like a pharmacy, or grocery store. But a wedding cake? It's very much a discretionary item. I could equally feel indignant that a local boutique won't stock my size, but ultimately I'm not going to unduly suffer just because I have to shop elsewhere. If I was unable to buy contraceptives in the only pharmacy for 100 miles or more (and this has happened in rural Australia) then that's a massive issue.
I hear what you're saying, but I still disagree. Discrimination only on non-essential services is still discrimination. To use your example (AFAIK size is not yet a discriminatory quality) - If the only reason a local boutique doesn't stock large sizes is because they don't want fat customers - I don't think that's fair or right.