Take Shazaam for example, who built an empire on audio data indexing/search, sound recognition = numerical analysis + probabilities + statistics + search algorithms + a lot of knowledge about systems architecture, distributed systems, databases etc.
Of course you can build products a la 37signals but is a lot more to software than that (and also note that 37 guys are not code monkeys/script kiddies/you-name-it, they actually know lots about CS - sample here: https://github.com/rails/acts_as_nested_set/blob/master /lib/active_record/acts/nested_set.rb )
At some point in your career you'll want to: write a parser, search a graph, optimize some storage thingie ...
Epilogue:
http://steve-yegge.blogspot.com/2007/06/rich-programmer-food...
I graduated in 2009 with a degree in comp sci from a decent college. I am working now programming a web application for non profit companies. When I first started my duties were slim, but nowadays I do a good range of tasks competently, and I credit that to my degree.
The other bonus to a computer science degree is the hours it takes to achieve the major. Those hours of practice are vital to becoming a good programmer, be it for the web or otherwise. It teaches you good work ethic and focus and gives you the ability to solve tough problems.
Get a comp sci major.
You should play to your strengths/interests.
Staying up to date in the tech world requires a bit of passion, so choose a path that you'll enjoy over one that makes the most sense. If you have a design eye and prefer building interfaces a CS degree might not help you much. If you like hard core problem solving that requires heavy analysis, CS might be more suitable.
Secondly, I don't think that a CS degree will 'pay off' in HTML5 and CSS3 skills as much as it will pay off with language and knowledge around how the nuts and bolts of programming works. My experience as a non CS major is that a CS degree isn't really required for a lot of things in the tech world. There will be some problems that will be terribly difficult and confusing if you don't have the depth of education that a CS degree would provide. I accept that as a weakness and try to work around it and to keep learning.
Once you start to learn a few languages and how to build with them it becomes easier to transition. It still takes time, but you spend less time trying to figure what you want to do and more time trying to figure out how to do it in a specific language.
That said, I honestly believe that if you just want to be a programmer you should try to find an alternative to a full 4 year program. A couple of years at a school that focuses on teaching you to be a programmer might be a better fit than a more theory heavy comp sci program.
If what you want to do is think critically, write better programs, and possibly even tackle problems that have never before been solved or even addressed, then you need a Computer Science education.