I think that good coders can write large-scale programs in C++ significantly faster than in straight C, but the problem is coming up with "good programmers" -- there's also much more potential to shoot yourself in the foot with complex C++ programs than with complex C programs. Heck, even with C, some people consider something like pointers to be "kinda dangerous" -- these are not the sorts of people I'd want to go on a hunting trip with.
There's nothing wrong with straight C, and for smaller projects it might make more sense than C++. I've used C++ on small embedded systems where you have to waste time making your classes and their methods static so that you don't immediately blow out the mere 8kB of RAM that you have... it was an interesting learning experience, but in retrospect C probably would have been just as good for 90+% of the code.
I don't think it's as guided as you think it is :-) ... although certainly the paid guys doing distributions -- Canoncial, Red Hat, etc. -- are trying hard to make it all a little saner.
They do, but they also have more annoying little glitches than similar mechanisms from years ago -- old casette players, TVs, VCRs, compasses, cars, etc. had far fewer potential failure modes, and it was usually pretty obvious what the root cause when something did fail.
Not that I want to rewind the technological clock by 25+ years here -- not at all. But I think the way that software and hardware is designed in this world needs some revisiting, since I'm convinced that considerably better quality results can be obtained without any more costs for development.
---Joel