To become a really well-paid, influential developer (IC called here, I think), you need to be smart, so that others that are also smart acknowledge you as a very skilled developer. Plus, it's probably not enough to be very smart (which in itself most people are not), but you need some level of politics that is always necessary.
For managers, it's also not a default that promotion will just come with years being somewhere, just untrue.
I would say, although depressing, some people in the industry just don't have it to be successful enough in anything to feel great at their job and there is not always a way to change this. I would never fingerpoint to anyone and say "he cannot make it", I would probably not even recognise that person (apart from myself) but I would say they take up a great portion, unfortunately.
Today's environment enforces performance. Those who cannot perform, will have a hard time...