It's more for the sake of innocent people that addicts are put away. Addicts are capable of hurting people in the most devastating and often deadly ways, even if they don't mean to.
Addicts are very selfish. Let's put it that way. They clearly don't care that it's illegal, they don't care about the gang violence the incites from disenchanted kids falling into drug dealership... they certainly don't care if it's illegal. Punishing them won't help, rehab only helps a percentage of the time... there are just some people you just can't break through to. That's the sad thing that addiction does. They turn into lost causes ONLY because they refuse to change themselves.
But overcrowding prisons, tossing a fortune of tax payer money to catch the non-violent addicts while letting gang members off (but it doesn't matter anyway, cause they'll just be a gang in prison and become even more violent when they come out), flubbing up, nay, intentionally flubbing up deflating these cartels and over all making business deals with these countries doesn't solve anything.
I'm far more concerned about the family members of innocent kids (and I literally mean kids) who get shot up by gang violence than I am about some selfish snots trying to get a cheap high. One town here is completely ravaged by gang violence and no matter what we do, we just can't catch them and break them up. Of course, drugs have only a fraction to do with these cases... but no one should be gunned down for no apparent reason.
But overall, if we want to defeat the cartels and the Middle East bankrollers, we need outside the box thinking. Come up with alternative fuels so we can stop relying on their oil. Take our jobs back from Mexico at least. China would be very difficult at this point, but that needs to happen too. I swear we need legislation to tax the heck out of these companies, but they'll spend three times that much lobbying to kill that.
It is a completely rotten apple.