Yes.
Yes, they might use it for drugs or alcohol, that's fine, it's as important as food sometimes.
Non profits and charities are great in theory, but most redirect less than 10% of what they receive towards the homeless look at LA's projects as the most glaring example, it "takes" 10 million+ per single housing unit for temporary housing. Not due to cost, but simply corruption at every level. From the non profits involved to the government itself.
Giving directly to the homeless skips all that.
Or to put it another way, you can't fix the problem or treat symptoms by continuing to give money to the cause of the problem. Giving directly at least treats the symptom.