Frankly speaking you really shouldn't be hiring anyone with the expectation that they'll be in their role more than a year or two. Ideally, you're working with them to move into a position with more responsibility and then you need to backfill their position anyway. What does it matter if their next role is with you or somewhere else?
It's a lot to ask for every company to have a role available for every employee when they're ready for more responsibility, and expecting them to just hang around waiting for their chance is pretty naive, I think.