There is a quote from hundreds of years ago which applies. "Make game of that which makes as much of thee." They fully intend to game you and exploit your desire for stability and predictability in your life. Play them back.
As a manager, I value my long-tenured employees _very_ highly and work hard to ensure they get significant raises year after year. I learned to do that by working as an engineer at several other companies that did the same.
So, if your employer doesn't work to make their best, most experienced engineers feel valued and well-compensated, by all means look for another job. But don't assume that all companies will try to force you out as soon as your salary is higher than a new grad's.
Training new people is expensive. Why would any sane company deliberately encourage turnover?
Requiring people to have a competitive offer in-hand basically says, "if you want a raise, go interview somewhere else." That's toxic and only effective for the people who game the system.
Responsible employers owe their employees a fair (according to market, their peers, and their contributions) wage, not the minimum they can possibly get away with paying. It might save you a few bucks in the near term to play stupid games with people's comp, but the attrition will kill you in the long run.
I agree with you on this. However, that's just how it works at all of the places I have worked for. Except for one. The startup I was at before we were acquired by a large tech company. However, being a startup we were already strapped for cash and were not being paid market rates but had some equity. That turned out to be decent when we cashed in but not enough for most of us to cover the salary difference.
I fully agree that employers should be proactive to ensure that good employees are happy and want to stay with the company. It should be mutually beneficial but I have yet to find a place like that. In the mega corps this just can't happen because of red tape. If you don't ask you will just get the standard 2% or whatever it is each year. Many times if you do ask the manager can't do anything about it anyway. I've brought it up that my hourly rate is 1/8 the rate I bill out at and am told that's just how it works.
I've used this tactic twice with the same employer. It's just business and any professional manager will not foster resentment. If it does cause resentment then you can solve it by simply leaving. I have no concerns over "looking weak". I'm only in this for me. It's bad enough that I trade my precious time for money. I'm going to take as much as the market will offer me. It probably sounds selfish but that's how it is. I work only to provide a decent life for my family. If I had 5 million today I would not continue to do what I do. I would find something to occupy that time but it wouldn't be trading hours for dollars.
What do you expect people to do? Work for the same company for 30 years and be happy to get maybe a 2% raise year over year?
My company offers market rate adjustments (outside of the usual review/salary adjustment periods) to retain experienced developers.