What is more, managing is a different job than programming. Not a lot of programmers really internalize that until they try out being a manager. Architecture, and technical leadership in general, is still another job. It takes the ability to internalize massive amounts of detail, organize it into some coherent frame work and then communicate that framework as needed to various levels in the language they understand. So for programmers they need to know how the parts fit together, for managers they need to know how the parts integrate with the business process, for sales they need to know how the parts make them better than the competition (or equivalent to).
From an economic standpoint, being able to generate 1000 lines of syntax error free code per day, is perhaps the best possible programmer you could be, but its never worth more than 10 programmers generating 100 lines of syntax error free code a day.[1] So yes, there is an economic limit on your pay.
The good news is that generally that economic limit is much higher than the cost of living, and you can run at that limit for a decade or more, so you can be reasonably expected to save enough to retire and not have to work any more.
Dead end jobs are jobs that will never pay you enough money to save for retirement. Programming isn't one of those jobs.
[1] Yes the 9 women, one month joke applies for short sprints but in general not for longer coding projects.