What's with the cynicism here? I've worked at at least two companies with a great train & promote from within culture, and heard of several more from my friends.
It's not cynicism, it's just logic and my observation of how several tech companies operate. It may seem great that a company would want to promote its novices, but the fact that it operates with novices doing the work precludes this. It's not economical to promote and pay more just for the sake of promotion. All they need are novices so why pay senior wages? Turnover does have some cost, so companies will either bait there employees into staying a bit longer by promoting one or two people and letting everyone know that person's new salary, or they will just not promote anyone. Either way, most people are going to look elsewhere after 2-3 years of flat salaries.
OK, I don't know what other companies do (or will do, or claim to do), but what I'm talking about, vis-a-vis the company I'm working on, is not a situation where we have "novices doing the work." We're definitely working on hard problems that require smart, experienced people. All I'm talking about, is having a mix of both very junior and very senior people, and then focus on adding senior people by helping the n00bs advance to that level over time.
This may have veered away from what original article was proposing, so I may be muddling the conversation here a bit.. but I definitely believe we can build a company that has a strong "promote from within" culture, that provides a very supporting environment that helps people grow, and provides a career path for technical people that doesn't require them to move into management in order to advance their careers.
It's not economical to promote and pay more just for the sake of promotion.
But you don't do it just for the sake of promotion... you do it to keep a person's compensation in line with the value they create and to stay competitive with the market. As people gain new knowledge and skills, and gain experience, they become more valuable.