Not going to college was the best thing that ever happened to my career. I got to spend my "college years" optimizing for business, which put me miles ahead of my peers who went to school. I now earn significantly more and get to work on more interesting projects (by my metric, at least) than my friends who even have PhDs in the field.
But that came with a cost. I missed out on a lot of non-career qualities by not having the college experience. I don't feel either direction is wrong, you just have to choose which is more important to you.
It's actually sound advice (and like all advice, you should think it through fully), if you know something already why pay $80k to get a piece of paper to prove it? Many people are employed in jobs they know but didn't major in.
Also, I think the advice to go to a small college is exactly backwards. If you're really smart and can teach yourself, go to a large research university. Compared to little colleges, these universities focus quite a bit more on novel research and less on teaching students. The professors are chosen on their aptitude in the field, not as teachers. So you get to work on ground-breaking stuff with brilliant people, but have less instructional support. This is a great compromise if you are something of an autodidact.
After all, the classes are not the most important thing you should get out of a university education. It's working with other extremely smart people, doing novel and nontrivial research and being able to pursue very specialized and advanced topics of interest. And the classes that are the most important--the most advanced ones, naturally--are the sort that aren't offered at little colleges anyhow. For example, I'm going to take a class on program synthesis next semester; I don't think I'd have that same option at a small college, and it's certainly a very exciting topic!
Besides, an engineering, mathematics or CS program at a good research university is more than challenging enough for anyone. This sort of education is a great complement to the average hacker--it ensures you have breadth even in topics you don't like (CPU design may be icky, but I had to learn the basics all the same :P), gives you depth in the subjects you do like and supplies a very helpful sort of systematic organization. It really helps draw connections between otherwise disparate areas of study and gives you a good base to pursue more advanced interests.
I used to think that just being a good hacker was all it took to be a good developer but the fact is that you don't know what you don't know. There are things that you are forced to learn in academic courses that you may not have chosen on your own but which end up being valuable in unpredictable ways.
(Because of the glut of liberal arts BAs, there aren't a ton of jobs for "well-rounded, cultured, and thoughtful" - though those might be little bonuses)
I've worked with a large number of people both with and without college degrees, in the US and abroad. And I've found that it's not the degree that counts -- it's the liberal education (I mean that in the sense of a well-rounded education, and many college graduates are not receiving that, particularly at colleges/universities where they're groomed for a role in software engineering). People with a broad background aren't just more inclined to problem-solve, they're better at it -- they come up with more innovative and subtle solutions, they're better able to manage their own time, etc. Time and time again I see issues being kicked around until they land at someone with a "well-rounded" background, who actually is willing to examine and solve the problem rather than looking at it from a single perspective.
I don't doubt that one can arrive at this state of mind without attending college, or that some who attend college fail to get there. But I want smart people who are able and willing to problem-solve, and in my experience college graduates have a serious edge.