I think the primary difference actually lies in the perception of the person delivering the pizza. In the case of charity, you know your money is going to help someone who'd otherwise go hungry, while for all you know your pizza delivery man is holding the job part-time and makes a decent salary at another job - he's just trying to add a little income to buy something he wants.
That means that if BP made the pizza free, people would think, "he must be able to afford it. Sweet, I'll tip him a little more, but I'm not going to snub his generosity by tipping the price of the pizza and then some." I know a lot of people who, if they saw less government withholding on their W-2 form, would go out and donate a large part of it to the local food pantry. Maybe the whole thing. But the primary savings going from welfare to charity is not in the amount of resources being shuffled around, but the percentage of those resources that gets applied to the destination. As OT went over, welfare programs see a small percentage of the money actually get to people who need it - versus charities, where the rate is nearly 100%. It's hard to beat that.