It's so damned hard to identify the reasons for these disparities and what "fair" means, which is the best way to alleviate bad feelings. A couple years experience at the right companies, a particular project you've done, a team you've been on, the degree you have, the right people vouching for you, a lucky day of interviewing, etc. Tiny variations in those can take you from no offer to a crazy high offer. There's so much noise in the system that leads to salaries. In this imperfect information game of hiring, I can't fault companies for paying heed to those factors and paying more/less based on them, but after that information is revealed and you've been working together for a while, things usually don't equalize. The initial lucky/unlucky salaries persist.
The whole thing is weird. To too high a degree, the open salary discussion is now, "Yeah, I got pretty lucky." Doubly so with the stock comp we get in tech.