That makes a lot of sense. However, which is more important, the warm and fuzzy feeling from doing a good deed, or actually alleviating suffering? Would not the more righteous position be the one that does the most to help others? In fact, sacrificing the personal gain of feeling good about charity to make it more effective, seems more charitable. You gain nothing, and others gain more. That sounds pretty in line with the Christian notions of self-sacrifice. What we have instead with this notion of voluntariness is a whole class of people suffering so that others can feel good about offering them token support. It doesn't actually solve anything if you do it that way.
And theoretically, one could eliminate the coercive part of socialism, as you put it, simply by voting in favor of it. Suddenly, it's not coercive anymore. You agreed to it. Instead of giving a little bit every Christmas, you and everyone else collectively agree to give whatever it takes to fix problems like illiteracy and poverty. And, in fact, according to the way we do things in the US, it's not even coercive if you don't vote for it. So long as it is a democratically enacted policy, it's not coercive. Unless you take the position that a government that does things that other people vote for is coercive, but people who say that aren't really supporting democracy. They're supporting totalitarian rule by themselves.
There's really nothing inherently more moral about an individual doing something positive than a group doing it. In fact, we are a group minded species. We are tribal. We act together as part of our nature. It seems rather short sighted that a person cannot support a good system and feel good about it, and gain spiritual satisfaction from it. To do so takes the mentality that inaction is not a choice. To sit idly by and do nothing is just as much of a choice as the one to take action. I cannot see how there is no spiritual fulfillment in knowing that the fruits of your labor assist in the collective effort to improve the lives of millions of others.