I think that sometimes departments try to cover the full breath of computer science or as close to it as they can fit into four years. The answer, I suspect, is often early burn out or at least a tendency to prevent people from learning as much about the areas that really interest them as undergraduates. This threads idea seems like a good one.