Let's forhet about the "bad" and "lazy druggie" homeless type and focus on the most sincere group.
Giving money to one homeless person is the financial equivalent of that same homeless person going out and buying cigarettes instead of saving the money or getting food and improving their life.
Paying a few bucks makes you all warm and fuzzy and sad.
However, this money will probably never change that person's life, or change the system.
If you really wanted to resolve this issue, there are much more systemic approaches.
Take the same money, invest it into crypto. (yeah, risky, but so is being homeless)
Then invest the winnings into an charity or other infrastructure that can provide a sustainable support system.
It doesn't "feel" as good as seeing the smile on their face, just like a salad doesn't feel as good as a cigarette when you're down on your luck.