1. Reducing headcount without reducing complexity will fail. Reducing operational complexity is hard because it requires that the top executives get access to information that the mere process of looking for will tip people off, and because it gets political rapidly. Layoffs need to happen quickly, the theory goes, so it's easier and better to just cut away 10% of the people in one fell swoop and, later on, reduce complexity. However, the complexity reduction often never occurs. According to typical executive thinking, it can't happen before the layoff-- it'd tip people that something's going on-- but after the layoff, people tend to see the first-order immediate problem (high costs) as solved and therefore don't handle the deeper issue (high complexity) that got the company in trouble in the first place. Thus, fewer people have to do more work; they do a worse job of it, and the higher defect rate leads to even more complexity, and everything goes to hell.
2. Plenty of companies are dishonest about layoffs and dress them up as aggressive "performance" reviews. I won't list names, but there are plenty of dishonest technology companies that claim to have never had a layoff because what the psychopaths in charge actually did was dress one up as performance-based firings, with kangaroo courts ("performance improvement plans") and all. At least banks are honest; they say, "business was shitty this year and we let people go". But there are so many tech companies that don't want the press of an honest layoff (they even pretend to be constantly hiring, to present an image of unyielding growth) so they lie and call it "performance". An existing stack-ranking regime helps. What these companies are really doing is throwing their own people under the bus to preserve their own reputations, and they shouldn't be surprised when people fuck them right back for it.