That's one of the reasons I got out of programming, was the salary ceiling. Sure, your first job hop as a programmer will probably get you a 20% or so increase! That gets your hopes up. Then your next one will be only 10% or so, and by the time you're 20 years into your career, you're barely getting any pay raises by changing company.
And if you think that changes by just being a different kind of individual contributor, you're probably wrong. You will still hit a salary cap even if you go into project management or product management--often at a lower $$$ figure than as a programmer. Maybe that changes when you get into people management--I don't know.
If you want to break through that ceiling, you need to have a position that includes a path to significant ownership. That's why bankers and lawyers have a path to becoming partners in the firm, and doctors have a path to private practice. A handful of worthless stock options at a startup doesn't count.