For example, consider the employer who decides to pay 10,000 to train their employees when doing so will cause their employees' market salary to increase by 5000/year. Assuming the employee will stay with him for 2 years if he does the salary bump, he's effectively paying the employee $5000 (salary bump) + 10,000/2 (training) = $10,000/year extra, when he could just go to the market and hire someone who already has the skill for $5,000/year extra.
Going to the market may also be faster if the skill is both complex & modularized (so it doesn't require deep insight into the current code base). You'll also benefit from the experience of the person who's done it before and gained battle scars.
So instead of promoting a jr engineer and training them, it's often just cheaper and more efficient to hire a senior guy who's done it before.