If I wanted to promote somebody to be the lead developer for a small project, I might be satisfied with someone who knew the code for that project very well. But if I wanted to promote someone beyond that level, I'd be looking for somebody who knew different parts of the company's products and how they worked together (e.g., the UI and the back-end), and who understood the needs of the customers to some degree -- someone who could see the "big picture".