I feel like they should be enforceable, but only under the same compensation as the labor was in the first place. Make companies pay for the privilege.
There also likely needs to be some additional compensation for lost time in the market when skills are atrophying or new experience isn't being gained.
Non-competes have a place, but there needs to be tons of rules around their use, like only being available for specialized and other high paid roles. Something like 3x-4x median salary to be a position eligible for a company to even propose a non-compete.