I'm an employer too, and what I care about is whether the applicant's skills are a match for what I need to get done. If I had your kind of hang-ups about people who knew how to pick a better opportunity when one came along, I'd get much less work out the door.
-jcr
It seems to me that there are two approaches:
1. Try to hire people with the skills to do what you need. If you can find and hire them, they'll be productive quickly and your investment in them will be low. If they leave quickly, you're pretty much back where you were when you hired them, looking for someone to fill a specific role.
2. Try to hire people with native talent but not necessarily with specific skills. They won't be productive quickly, so you'll have to invest a bit in on-the-job training which may be formal or may just be a matter of letting them be less productive while they educate themselves. If they leave quickly, then you will lose a lot of that investment.
Both approaches are reasonable, and both can be effective. IMO, the very best companies go for option 2, then do the right things to retain them, but option 1 can be fine as well.