That's often layoffs in disguise. If you want to cut 10%, but you don't want to do it as a single layoff, because that's expensive, can trigger certain laws depending where you are, and might disrupt teams, who do you cut?

Instead you can do layoff by attrition, you stop hiring, and you don't backfill seats, as people naturally leave or get pip-ed, the team shrink, you don't rehire into the position, and in a year or two, you cut down by 10%.

Also, I wouldn't trivialize a freeze in hiring growth, it means to get a job you have to wait for someone to retire, and also wait for people looking for jobs with more experience as they're more likely to fill the roll to also retire. Basically there's now way more demand for jobs than hiring, so that will drive compensation down for those currently employed.

Adding on to your point about attrition: if internal promotions in engineering are decided by your ability to be a force multiplier, to facilitate cross team collaboration, mentor and help others to skill up, how do any currently employed engineers demonstrate that with no one new to mentor or train? How do you collaborate when teammates work with AI tools more and coworkers less? Would they just have an easier time getting into a higher responsibility role looking elsewhere?