Our professors always told us, it is expected in our branch, that we make a shift every 3-4 years. If you stay in one place for too long, you start to rust.
I am a DB & Software Developer and I also agree with you on the loyalty aspect of retaining employees, but it is hard to convince your boss to jump to a new technology, or even to a new programming language for that matter. Hence employees kind of get stuck and haven't got the time to evolve - of course you can take your free time to learn all the new stuff, but I work to live, I don't live to work.
And if you do have to look for a new job, because your firm goes off the market (weren't innovative enough ) - then you haven't exactly got the skills the market is looking for, so you once again have to take a cutback in wages ...
There are pros & cons of retaining employees - but I think in a branch that develops as fast as IT does, it can be quite risky for both employee & employer.