One central problem is that the current policy towards drug offenders does not focus on rehabilitation.
Drug addiction is a medical and chemical issue. It is not something that can be punished away. If we really want to reduce the amount of drug use in the United States, the best way is to get people off drugs. The best way to do that is through anti-addiction programs. Putting a person in prison is not a way to help them get off drugs.
In addition, attempting to reduce the supply of drugs is not effective. It would make more sense to try to reduce demand for drugs. Our current policy of trying to prevent supply is clearly not working.
I do not believe that we can ever completely get rid of drug problems and drug offenders. However, I think that our current policy is flawed and ineffective because it focuses on punishing (rather than helping) users and on trying to reduce the supply of drugs rather than the demand for them.