I almost agree with you that programming can be approached from a Scheme mindset... It can be really mind-opening.
But I think teaching programming from C++ or Python perspective can be of (almost) equal greatness...
You can do many cool things here and there... It only depends on the level of the course. I mean, if you are going to take an advanced course in programming languages design, learning Scheme, Lisp and other languages can be of great help; but if you want to give an introduction to programming - to people with no programming-related experience - C, C++ and Python are very good choices, I think.
When I was in uni I got my introduction to programming in C. And it was the most funny and mind-opening course in my first year. So, I think it's subjective.
I agree that C++ is a complicated language, specially when you use Boost or Tools.h++, or the even make things worse. But when you teach beginners to code in C++ and only utilize STL, I believe it would be an interesting and challenging course. Plus, in an entry level course, you only need to introduce the basics of programming, which are (in an abstract sense) general logic principles and language agnostic.
C is actually a relatively simple language and a good choice for beginners.
I agree that you need to teach general logic principles which are language agnostic, but if you do this in the context of C++, the beginner is bound to waste a lot of his time fighting irrelevancies in the language.