I'm inclined to support well-compensated non-competes, eg "you can't work in this industry for 1 year, but we'll pay you 100% of your salary for that year." That would allow non-competes for people where it really matters to a company (eg where they're willing to throw a lot of money after it), but ban it the rest of the time.
It's still harmful, but you're at least able to get compensated for the harm.