I also recognize that direct charity prevents or delays people from finding a better solution
You may claim that, but don't try to pass your opinion off as some universal truth that you 'recognize' while other people can't.
Employ homeless people.
Give a homeless person a break. Maybe just ignore them in their shelter. They must do everything in public, for they rarely have a private space. They can't afford the luxury of choosing which actions others may view.
Learn how communities in your area address the homeless people who live there. Remember that homeless people do still live somewhere. This is not a part of their life they will be proud of, but it's not the end of their life, not a permanent placement.
What about something like this instead?
https://www.washingtonpost.com/news/inspired-life/wp/2016/08...
There is a program by which they distribute a magazine[0], mainly about the homeless life, and in theory with articles written by them.
It's still a begging of sort, so not as good as a proper job, but I've always felt it was much more dignified than panhandling. And from the other side, it gives you the idea that people handing out the newspaper are at least putting in some effort rather than just sitting on the corner (not saying they'd do, just talking fo perception).
Having grown up in poverty, been homeless for a summer, walked home past homeless people every day for years, and now a well-paid engineer in a nice city, I understand the questioning rage, wishing there was someone there to ease your burden. But I also recognize that direct charity prevents or delays people from finding a better solution, or even just having the dignity of knowing they've done the best they can for themselves.
In a sea of inequality, there is no peace, only calms between the storms. Making everyone equal is a laudable goal, but a more realistic goal is simply ensuring everyone has a rewarding and fulfilling life, and we still have a long way to go with that one.