A common complaint is that it is too difficult to have career growth without changing companies and that promotions and raises are difficult to come by because companies don't care about developing their people. What you are saying now is that it is also bad if a company promotes people from within, since it encourages people to leave. Both options (never promote / encourage growth) can't be wrong.
IMO, this is not the way it works at any reasonable place. I've had zero engineers under me leave over the last four years and I attribute that in large part to me being able to meet their career growth goals within my team.