It goes back longer than that. What's confusing is leadership and management continues to believe they hold all the cards. As if there's no demand for the skills their people possess. They often say "We can't find good people" when they should be asking "Why are best people always leaving?" That lack of self-awareness is what drives the turnover rate.
It pays to switch jobs. If nothing else each new employer will do their best to justify the decision to offer a significant increase. They know what they have in hand. You just need to be perceived as having more potential than that.
Also keep in mind, pay is often a function of having management potential. If you're getting more for similar work it could be because they see you as having greater long term potential, or have other things to contribute sooner.
There's more to advancing in tech than tech-centric skills.
Of course, nothing personal, but as an user (not programmer) I have the feeling that programmers are given the same problems and fail to actually solve them like they failed 10 years ago.
You might be the exception, but - again as an user - I find the same inconsistencies or bugs or more generally "queer" behaviour in programs that I found 10 years ago, so something (not necessarily the pure programming part) must be "wrong" in the way they (the programs/apps) are conceived, released or tested (or non-tested).
I found some great forum posts from 2003 which really seemed to capture and articulate my views.
Check the posters name and it was.... 2003 me! Exactly the same issues about not getting anything done and architecture astronauts 18 years later!
Big company IT. The more it changes the more it stays the same.