Arguably an extreme in either direction would be relatively effective. Where we sit now is not effective because it doesn't embrace actual justice, nor does it embrace actual recovery. In Seattle, for instance, the policy is to distribute drugs and needles to users, but not offer effective recovery options. Nor is there social pressure to not use drugs. Nor is there actual justice for those who prey on people who are too weak to escape.
I think a combination of both approaches could be good; target the dealers, the movers, and the makers; allow users who want rehab to undergo rehab without facing charges (make no charges contingent on the absence of crime other than possession and use).