I think loyalty is something earned. I think we should model jobs more like relationships, value has to be given on each side of the equation. If your not treating the girl well, she leaves. You don't go in saying, baby if you date me you have to be here for the next 2 years even if I start beating you.
I've heard similar advice about hiring people who are obviously over-qualified and will probably leave in 6 months. You have to use them not as workers, but as trainers and inspiration beacons for the rest of the team.