Unfortunately, much of this spending fails to encourage behaviors that actually move people out of poverty. If you are receiving assistance, any money you earn above a certain amount threatens your assistance. So you hide it or stay below the arbitrary limit. This is not the way to encourage honesty or industry.
How long were things done that way, despite the facts? Decades. And that's the problem with government administering charity. It doesn't look at the results and adjust its approach until outcomes improve. Its driven by political considerations. And when it does measure reality, it measures those things that make it look successful.
And why should it look honestly at outcomes? Government doesn't have to convince you to support a program. Unlike private charity, it can make you fund it. You probably don't even realize what you're funding.