I can see arguments both ways. Have worked for a company for over a decade that only ever promotes from within; they have done this for 40 years, so everyone who works there started on the 'shop floor' (which is actually customer service / inbound sales) all the way to the directors. It has its downsides. Primarily, people in marketing have no background in marketing, people in HR the same, etc etc. And the same goes for their superiors, so no one in the entire marketing dept (for example) has any idea how its done in other organisations. It can be a very closed environment. It also seems to result in unavoidable nepotism and jobs for the mates; it also often results in a major lack of candidates for certain positions in certain geographical locations, they might only have one candidate, who might be useless, but gets the job.
On the upside, I suppose it encourages loyalty. But making it an exclusive policy, is surely a bad idea from the perspective of the company itself. The situation with the railways currently seems the best balance; prioritise internals, but dont exclude externals.