It's insane how willing american culture is to waive what should be rights if they're signed away. Really, the primary right available to you is the right to be railroaded by contract.
> you own nothing
> the company owns everything
> you have no rights
> you promise not to try and exercise any right you think you have
> you agree to binding arbitration with the firm we pay, just in case you ever get it in your silly little head that you do have rights
> you cannot do anything the company doesn't like
> the company can do anything it wants whether you like it or not
> the company is not responsible for anything ever
> the company makes absolutely no guarantees about anything
> however you are liable for everything that you do that we do not approve of
That's what happens when you can alienate people from their rights via contract: alienation turns into legal boilerplate present in every single one of those documents. The only possible reason for a company not to do this is ignorance or legal liability.
Contracts that enforce only one position are not good - this is why we have string labour laws. A contract in France cannot have anything that is outside the labour law. They are completely generic.
My country's laws work the same way as what you described. I've had lawyers straight up laugh when I presented them some of these abusive contracts. This "waive your rights" business seems to be an american thing.
What I suggested is to have another company take the burden of the training that happened right before someone left.
a friend of mine had the same problem with hiring junior developers. by the time they had enough experience so that he could make a profit from their work, they left for higher paying jobs. he barely broke even most of the time so he ended up closing his business because it wasn't viable.
it's also an issue of perception. my company once tried to attract juniors with a high salary (at least 50% higher than local average) but that meant that we couldn't give them a raise early enough. after a year they got a better offer and left.
A key question is whether the training is actually worth what’s being charged for it.
The same issue comes up any time a company makes an "investment" in their staff. The bigger the investment, the bigger the incentive to jump ship.
but they don't stay longer. and unfortunately a pleasant work environment doesn't help because juniors don't know yet that other companies are different. it takes working for a few companies before someone learns to value work culture over a higher salary.
finding the right balance is not easy.