Outright bans cause too many problems. Illegal production makes drugs more dangerous. And allowing everything has some social costs too. Each approach eventually leads to many people wanting the opposite policy, so it will just go back and forth.
Regulating it by neighborhood will allow people to keep drug abuse away from their kids, while still allowing those who want to use drugs to access it without too much trouble. They can just travel to a neighborhood where it's allowed. Avoiding fines will give them an incentive.
Neighborhoods that do allow drug use will pick which drugs to allow and be able to tax the activity and have rules to handle the activity. There are red light districts for prostitution. Why not handle drug use the same way?