I've heard that big, well-known consulting companies have refined this pattern into a business model that scales even better.
Why do any sort of progression, when you can just have a bunch of skilled people visiting customers to secure contracts, and once projects are started, they can be substituted for an army of juniors? Meanwhile, the seniors go secure more contracts elsewhere.
This is exactly the case - large consulting companies tend to hire loads of people fresh out of college (out of any engineering discipline) get them through a crash course and hand over work that's secured by onsite consultants. Attrition is a factor that's already been taken into the equation.
Basically you get what you pay for. Large consulting companies offer peanuts compared to good software developer salaries. But compared to the salaries you can expect in other fields of engineering if you are an average student (considering the glut of mediocre engineering colleges here)- consulting salaries seem decent.
Create a branch office in India and offer the expected salaries for software engineers and you can find great developers.
Why do any sort of progression, when you can just have a bunch of skilled people visiting customers to secure contracts, and once projects are started, they can be substituted for an army of juniors? Meanwhile, the seniors go secure more contracts elsewhere.