Consider this: I hate hiring. Most managers I know do. Interviews are contrived; you are making decisions that will impact both your company and their lives; if you get it wrong, you're going to have your team impacted and letting someone go for performance or behavioral reasons are even worse.
For every person I've worked with at any given place, I can tell you within 15 seconds that, if they re-applied a few years after they left, if I would hire them back. I can tell you yes or no and the interview would only be for purposes of leveling. (How have they grown, for example?)
I can tell you based on how I felt when I found out they were leaving. If they were the wrong fit for a team or role, then you get them into a role that fits them!
Now, I have people that I would conditionally hire. There is one former coworker that comes to mind: he's brilliant in some cultures but will quickly grow frustrated in others. However, given the right culture, I would enthusiastically hire him. (And he is self-aware enough to know that he needs the right culture - if he's being called for a reference check, he's probably aligned with that culture.)
Isn't that the rub overall? The whole reason that it's easier to get a raise by jumping ship than it is to stick it out?