Inheriting off-topicness, while that stereotype does apply to most mathematicians, a large number of the CS theory people I've worked/TA'd with were actually pretty good programmers, and a few had even taught multiple years of our intro systems course. Of course this is just one school, but I think computer science as a field is still young enough that someone can be an expert in one area and still be reasonably fluent in other areas.
Don't think the last point is particularly true either: being a good programmer is valuable even for theoretical CS. Point in case, recently saw the work leading to a paper on SDD solvers: there was a ton of programming and exploration (albeit in Mathematica/Matlab) that led to the final paper. Also, people working on parallel stuff these days (even the theory guys) usually publish CILK/MPI along with the paper. It's great when you can do both :)
Yes: That's definitely the way it should be! I agree 100% that CS is still young and cohesive enough for dedicated people to achieve both breadth and depth, which perhaps means "grand" single-person revolutionary breakthroughs can still be achieved: Karp made a similar point during one of the Turing centenary talks (*An Algorithmic View of the Universe [1,2]), positing that the field is not yet specialized enough to prevent an Alan Turing-like figure today to have a comprehensive view of the state-of-art of the discipline (!).
Don't think the last point is particularly true either: being a good programmer is valuable even for theoretical CS. Point in case, recently saw the work leading to a paper on SDD solvers: there was a ton of programming and exploration (albeit in Mathematica/Matlab) that led to the final paper. Also, people working on parallel stuff these days (even the theory guys) usually publish CILK/MPI along with the paper. It's great when you can do both :)