I think a lot of mediocrity comes from layered management. Line managers are driven by customer requirement. Executives by the board.
But middle managers are driven by ... nothing in particular. The only thing they have to optimize is budget and hitting schedules. SO they maximize their budget and minimize deliverables. Which is diametrically opposed to company objectives.
How to get them to behave better? I don't know, so I suggest lining all middle managers up in the parking lot, and firing a single bullet through all their heads. To optimize bullet costs.