My school (UVA, in the late-90s) already had recently converted Computer Science as a limited enrollment major to get around this problem. Declared CS majors had preference for CS courses. It wasn't quite so bad that others were completely locked out, but if you weren't declared, you had to be quick to register and might not always get into fun electives (the core courses were usually larger and easier to find a seat).
Since that time, they've actually added a second CS major. They now offer the original BS in CS through the engineering school. And a BA in CS through the college of arts and science. The two primary differences being a foreign language requirement for the BA students, and a heavier emphasis on math and general engineering in the BS program.
Then again, despite being a top 5 program, it only received accreditation while I was attending.
I graduated from a relatively good school with a degree in Computer Science, yet wasn't admitted into the major until 2 weeks before graduation. I spent my entire college career in Computer Engineering while taking Computer Science courses and (thankfully) was able to complete the curriculum without actually being a part of it. I lucked out as at my school Computer Science isn't locked down like many of the other engineering majors, so anyone can take a CS course as long as they meet the pre-reqs. It would be an understatement to say the experience was harrowing.