C++ is a hybrid not because it allows one to write C-style code, but because it supports several programming paradigms, such as procedural, object-oriented, and generic. C++ does not force you into one way of doing things, and that is its strength, because different problems can be solved more easily using different paradigms.
IMHO, it would be better if the language/compiler forced to some extent programmers to write more elegant code.
Then you first have to define what elegant means. Then you would have to see if your definition of elegant is appropriate to all the problem domains and platforms for which C++ is used. A coding style that is elegant for writing a word processor for Windows might be completely unsuited for writing an embedded system.
Consider writing C++ code to run on a DSP. First, the C++ compiler for that DSP may simply not support certain C++ features, like streams. Second, you are severely constrained by the CPU speed, and possibly memory, so some C++ features may simply kill your performance. For example you may have to avoid virtual functions for the sake of speed. Such considerations would radically change your programming style, compared to what you would use on a PC, and C++ allows that.
To summarize, C++ is a huge and complicated language with lots of features. There are many reasons why any subset of those features may not be applicable to a particular project: speed, portability, compiler support, or even programmer experience and familiarity. For that reason for the language to force the developer to use certain features as opposed to others for any given task is a bad idea. Think of Java, where the language mandates that every function must be a method of a class. There are so many cases when creating a class just to wrap a method is awkward and unnecessary, and yet you have to do it because the language forces you to.