1. Companies over hype the position (like requiring an Architect's training when the job really requires a construction worker). The Architect will likely leave the job in 1.5 years (which is the average turnover rate at many tech companies)
2. Trust between companies and tech developers is low. Tech environments are pretty hostile at times and developers absorb all of this. They wait for employers to address these problems but only receive lip service and wishful thinking. Trust devolves. After multiple rounds of this, developers develop a general distrust for companies in general and leave at the first sign of higher pay or better benefits. Loyalty is rare.
These are the major take aways I got from hawking every article and paper on the topic I can find. If you have a good article on the topic and care to share it, please do. I will definitely read it carefully.
I noticed that often a few lines of job advertisement, a half hour meeting with a company say enough to effectively notice the patterns of bullshitness and run away.
2. Just sounds like bad companies or big companies to me. Makes sense to me, move on. That's the sign of a good developer as well as a strong individual in my book.
Do you trust you'll get a paycheck? I generally do.
Do you trust years of "that promotion is coming"? If it is years then you've got your answer, it's not about trust.
Leaving for higher pay isn't about "trust" IMO, it's just an option that you take or don't.
I've seen this devolution happen at least three times in my career at three different companies. In every case, it results in devaluation, then exploitation, then burnout of previously enthusiastic, talented developers who soon leave. Sadly (even if you are a staunch capitalist in the executive suite) this "streamlining" almost always proves misguided as the company inevitably loses all technical credibility, innovation stalls and it loses any competitive edge it might have had along with market share.