Surely then a CS grad from a top university would have very similar skills?
I understand what you're saying that a CS grad should know how to program and, in most cases, they will. However, CS is not fundamentally about programming.
I think that nowadays a CS degree is a bit of a bastardisation of a classic maths based CS degree and a software engineering degree.
The way I see it is that the relationship between maths and, say, mechanical engineering is very similar to the relationship between computer science and software engineering.
It probably isn't so much a "bastardisation" but more an "evolution". The industry has moved on.
Probably can argue either way. Doesn't change the outcome though... that companies looking for a graduate programmer will go for CS grads first.