I don't think we can say that Linux or Windows is FLAWED because it is written in C. But neither can we say that C++ would make that task impossible.
Designing an OS is difficult. Using C or C++ is a small matter in the whole process. But once you go down the line of using one, it's pretty darn difficult to change that decision without major upheaval of API's and such. This is the major reason why there's no immediate projects to modify Linux or Windows to use C++ instead of C. The whole OS has to be designed that way initially.
--
Mats