Imagine you need someone to help support a team of compiler writers. The kind of support is mainly protecting the team from too much bullshit above, and also just making sure the team has what it needs (someone's gotta get those chairs for them).
How much compiler experience do you need? It definitely helps to know about the constraints of development (difficulty in measuring project length, need for longer periods of concentration), but apart from "street cred" coming from importing within, there's a good argument that someone who's managed across multiple industries will be good at absorbing the right stuff to manage well.
OTOH, if you promote from within, you might be getting someone with good potential. But they likely won't have management experience, and their job changed from "ship this product" to "make sure the team doesn't implode (also ship the product)". If you have the slack to handle the learning curve, it's good. But hiring experienced people for a job is useful.
100% agree abut absorbing lessons though. When you start off with a certain mindset, it takes a while to absorb a new one. But your job is to make the company run well, not to be an advocate for whatever you learned at school