I was at a state school paying a reasonable tuition to learn from a quality computer science program. I regret it because although I have written all sorts of frontend code, Ruby, Python, PHP, Java, managed servers, I have still not "finished" learning what a CompSci student learns. I couldn't write my own compiler, I can't tell you which sorting method is fastest for certain data sets, etc. I have learned solely by what is needed at the time, and have created value for businesses I've worked for, but I often just don't have the additional motivation to learn things I don't immediately need. I have SICP sitting on my bookshelf, unfinished.
Anyways, basically finishing CompSci would have forced me to learn some of the theories/necessary base things that I may be missing now.
I dropped out of high school in 2000. I'm 31 now. I built a hosting company from scratch (hosted Gatorade, almost all of Pepsico, Arthur Anderson), sold it, was a Director at a consulting company at 23-24, worked on data taking for the CMS detector at the large hadron collider, and now am a VP of IT Operations.
I'm not sad at all I missed out on everything a CompSci student learns. If I want to learn it, a problem presents itself, and I learn it.
If you want to learn the things you mentioned, learn them! Our industry allows us immense time leverage. Work 10-20 hours a week at a high dollar amount, and spend the rest of your time learning that which you're not going to learn on the job.
Don't worry about that. The stuff you've learned are more useful than what you have to finish at school.
You can learn what you need to learn and cherry pick them. There are some interesting courses during the program, but that really depends on the teacher, your class mates, etc etc. What you learn by yourself is more important than what you have been thought. IMHO.
Pick up Knuth's The Art of Computer Programming series along with Concrete Mathematics. I'm going through them myself right now (slowly, though) and the knowledge I've gained from those books is offsetting never having learned the fundamentals pretty well.
Make a game that teaches SICP (cue leet bbcode masters with "have you read your sicp?" Snakes) - you learn the book by gamifying it; other people learn the book by playing the game.