I'm mostly a CS major, so maybe not an engineer, so my experience may not be entirely relevant. One thing that's different is that while we may work harder than business majors, we certainly don't spend as much time in books. In fact, for most classes, just going lecture and doing the projects, homework and labs is enough for most people.
In CS, most of the time we spend is probably working on either problem sets (for algorithms classes) or projects (for more programming-oriented classes). In both cases, there is an extreme spread in how long it takes people--some people finish in hours what takes others days. However, in every case, very little time is spent memorizing; we just have to understand difficult concepts and be able to solve complicated problems that combine them in weird ways.
As for weeding out students, CS is special. It is a well document fact that a significant subset of the population just can't manage the sort of thinking needed to succeed in CS; this leads to even very easy classes getting scary reputations.
Finally, we come to career pertinence. I'm still a student and my only experience has been in simple internships. However, even there, many of the things we've covered have been very useful. While it's reasonable to just pull a book out (well, not a book--just the internet ;)), we need to learn everything we're covering to even know where to look, and, often, to know that we need to look anywhere at all.
Ultimately, all the hard work just gives us the baseline to identify problems and consider possible solutions to look up. Chances are, by the time we get to solving nontrivial problems, there will have been interesting advances anyhow--only the big ideas stay at all constant.
If you've never learned about how a computer is structured, you would never consider optimizing an algorithm for cache usage. On the other hand, with a CS degree, you will know enough to look up your processor's specs and twiddle around with the code until it "magically" becomes much faster. The main point of my education--as I see it right now--is to get me to basically that point in all of the sub-fields of CS.
The other big thing that all the work tries to instill is how to think like a programmer. If you've programmed on your own, you've probably started developing this; if you haven't, it's particularly important. For some people this step is difficult; others don't need much help. In the end this ability is extremely important in the real world.
So yes, I might never use MIPS at work but I will know enough to look up x86 if I really, really need fast code or if the compiler is optimizing weirdly.