I think a big part of the problem is that, when a company becomes political or factionalized (and many companies do) external leadership becomes the more "lightweight" option. An internal promote, in a politicized environment, can be taken as a statement about which faction is favored and the future of the company. An external promotion is an unknown, so people are more likely to see what they want to see in the change and, at least in the short term, less likely to be pissed off.
However, I think external sourcing for leadership positions is more politically risky in the long-term. First, people can get a sense that it's impossible to move up. Second, the new CTO or VP/Eng is going to bring other people in with whom he has pre-existing relationships, those people will be regarded as presumptive favorites... and then the transplants along with those they invite into their clique become the new faction. You can't solve a factionalism problem with external promotions; it tends to create new ones.
However, I think external sourcing for leadership positions is more politically risky in the long-term. First, people can get a sense that it's impossible to move up. Second, the new CTO or VP/Eng is going to bring other people in with whom he has pre-existing relationships, those people will be regarded as presumptive favorites... and then the transplants along with those they invite into their clique become the new faction. You can't solve a factionalism problem with external promotions; it tends to create new ones.