That seems to conflict with the preface that you are constantly learning and improving, which should include changing jobs when you have become stagnant. you can make absurd money working in finance with java programming.
People doing CRUD apps at Google makes lots of money and Google still hires everyone who pass their general tests afaik. Not everyone can work at Google, but if all software engineers were great we would have way more well run tech companies and therefore more companies paying similar to Google. So that argument doesn't really makes sense, software demand is still far from being met so all value any programmer can be delivered will be used up. Unlike for example cleaners, if every cleaner did 2x the work then we would just hire half as many cleaners.
the ability to work hard(defined as continuous focus, improvement, work ethic) with reasonable intelligence as a trait follows a Gaussian. I am not going to sugar coat the fact that that will naturally create a hierarchy of success