When I was at MIT, the best professors in lecture were actually top researchers (to the point of winning the Nobel). The best actual experiences I had were participating in faculty research (as an undergrad, you can actually contribute fairly meaningfully outside the core focus of the research; a CS/Math student can help out with data acquisition in a substantive way in Physics). Plus, undergraduate organizations like SIPB (which has developed KSplice, and which worked on many other interesting projects before)
I don't think most of this would happen at a small liberal arts college.
High school should cover liberal arts, plus a strong math and science program; this should be a universal education since it's essential to citizenship. College should be for jobs which require it (sci/tech, or perhaps becoming a high school or college educator).