If you replace "developer" with "general contractor" and "writing code" with "constructing a building", do you believe your argument holds up? How about "doctor" and "practicing medicine"? "Attorney" and "practicing law"? "Salesperson" and "selling effectively"? I could go on.
While employed, a person necessarily learns skills in order to perform their duties; as an employer, it would be impossible to derive value from the worker without training and knowledge transfer. Your argument is that it should be a two-way street until employment is terminated, then it becomes a one-way restriction against the employee. That's not fair to workers and is extremely biased toward the employer.
My argument was about software development and I don't know how much it would hold up for other fields.
Employer pays the time for that employee to acquire the knowledge, employer serves the know-how that the employee might never ever able to learn by herself. How is it not reasonable to expect that knowledge to be used against the employer? Why is it one-way? I'm not talking about knowledge in a sense that "good code should include comment" kind of dev best practice. I'm talking about domain specific know-how that the employer came up with in many years by spending lots of money (R&D, trial & error, field studies etc).
While employed, a person necessarily learns skills in order to perform their duties; as an employer, it would be impossible to derive value from the worker without training and knowledge transfer. Your argument is that it should be a two-way street until employment is terminated, then it becomes a one-way restriction against the employee. That's not fair to workers and is extremely biased toward the employer.