Except for a few bogus charities, like the March of Dimes, most private charities get 50% of their money to the needy. And Churches get 75-80% of their donations to the poor. This is the real reason for public-private programs. Even though it 'violates' the anti-church bias of the government, such programs are 4x to 5x more beneficial than anything the government can do directly.
The biggest problem with government programs isn't inefficiency. The problem is that by creating a sense of entitlement many of the programs do more harm than good. To be sure, a private charity could implement some the policies that make government welfare so harmful, but such policies are very rare with private charities and very common with government programs.
I find it amazing how many liberals want to eliminate the stigma associated with accepting welfare, rather than recognize that such stigma plays a very important function. The proper way for a person on welfare to stop being stigmatized is not to have government provide stigma-free ways of receiving welfare, but instead to get a job. Some people may have psychological difficulties in that regard, but declaring idleness to be acceptable isn't apt to solve the problem.