Our squad leads make more than junior engineers. Our senior engineers make more than junior engineers. It's not a factor of 3 like in some other industries, but it's also on a much higher initial base.
If "making 3x more than the new college hire" is your primary goal, software engineering might not be for you.
If "making a crapload of money at a job that's so good I'd do it for free anyway, and having little to worry about financial security" is your primary goal, software engineering is gig that's tough to beat, IMO.
20 or 40 years of experience? I'll pay those two people the exact same (on average). Tech changes quickly enough that general software experience matters, but no one has 40 years of experience in .Net, JVM, or Javascript. I think that general software experience plateaus around 15 years or so, so I don't see much of a reason to think the employee with 20 or 40 years of experience is in any way more valuable than the employee with 15 years of experience. If they aren't any more valuable, they haven't earned the right to any greater comp, IMO. They drift upwards with inflation and the general market, just like everyone else.
Probably not. As an industry, we simply don't have many people who have 20-40 years of experience, because 20-40 years ago the field wasn't that big.
We're yet to learn how to put a proper price on experience once we have enough experienced programmers for everybody to see how much better than the youngsters crowd they are (or are not) and when the job market starts to demand them (if this ever happens).
I got out of software engineering after about 10 years, in large part because of the compensation ceiling, thinking project management or product management would have a better career trajectory, and boy was I wrong. The ceiling is present throughout tech unless you're a senior or C-level exec.