It would be interesting if C++ had a "use strict" mode similar to Perl. Something that would try to eliminate the worst abuses. The problem is that there really is a lot less consensus on what "the worst abuses" are than in Perl. I have my own list, but I'm sure that posting it here would generate a flamewar (and probably lead to me educating a lot of people about obscure C++ trivia).
I know that you realize this (and clearly all the kernel developers do too), but a lot of developers don't realize that you can use C exactly like a "simpler C++." Instead of classes, you have functions which all take a pointer to a struct. Instead of private methods, you have functions which are static to a file. Instead of virtual functions, you have tables of function pointers.
I would also encourage anyone who is tired of C++ to check out Google Go. At least give it a try.