> What you are recommending is that employers pay for training, and then pay employees exactly the same that they would get for hiring someone with equivalent skills from the market. This leaves employers out by the cost of training from the cost of hiring from the market. So the business is strictly behind where it would have been.
This is in the context of businesses complaining about a shortage of developers. If every mid or senior level position was getting filled without much grief or effort, then there wouldn't be any issue. But in a situation where the business can't seem to find anyone that fits the bill, the obvious solution is to look at the talent they CAN train, instead of hoping the exact right candidate walks through the door.
Furthermore, in any reasonable organization where things like positive/negative code review, respectful seniors, mentorship, and a general respect of all developers are part of the company culture, the cost of training a junior developer to be useful to the project is largely absorbed. Of course, a company where everyone is isolated and heads-down will consider training to be a huge burden, because it's completely orthogonal to their workflow.
> Businesses that consistently pay for losing propositions usually wind up going out of business.
Businesses that focus on the short term "we need this now, get the butt in the seat" aren't thinking about the workforce as people, which is just as insidious.