I think the most impressive candidates have a mix of 3 qualities: raw ability to program, ability to map real problems into programming problems, and ability to work effectively with other people. I don't expect the ideal candidate to be an ICPC winner or red-rank TopCoder, but they should be able to manipulate code effectively and reason about their programs well. Knowing what non-technical requirements mean in technical terms (i.e. how to build what the customer wants) and what technical restrictions mean in non-technical terms (i.e. what alternatives you can propose when presented with restrictions) is core to being able to build software that solves problems. And since we're talking about hiring people to join a team of other people, obviously I need to be confident they'll succeed in that environment.
I know there are many red-ranked TopCoders and ICPC winners working on big companies like FB, in your experience does this ability translate well into "real world" programming?
I'm not really able to look at performance versus TopCoder rank (partly because I don't know my peers' TC rank because I'm not that into TC), but if I had to guess, I would think that there is no correlation. It's simply a matter of where one puts one's developmental efforts.
Given the same amount of time spent on TC, you'd definitely have the expected correlation (with the usual IQ common cause if nothing else). But I agree that once someone gets reasonably competitive in an area (esp. one w/ game-like mechanics and public recognition), they're at risk for overspecialization.