That was from 'Inside Windows NT' by Helen Custer. It's old book, that much is true, but the NT/2000/XP kernel is still written in C.
Despite its pervasive use of objects to represent shared system resources, Windows NT is not an object-oriented system in the strict sense. Most of the operating system code is written in C for protablility and because development tools are widely available. C does not directly support object-oriented constructs, such as dynamic binding fo data types, polymorphic functions, or class inheritance. Therefore, Windows NT's C-based implemantation of objects borrows from, but does not depend on, esoteric features of particular object-oriented languages.
This seems to be saying something that a lot of people in the PHP community should realize. That an object exists first at a conceptual level! How the implementation occurs is up to the developer or the team, not to mention the language involved and it's issues. Therefore, I can still realize a good OOD without using objects! Will it be a little tougher to deal with and maintain? Perhaps. However, will it perform better than using actual objects? There is a very, VERY good chance that it wll and there is plenty of proof to support as much.
*Should the kernel use object-oriented programming techniques? Actually, it already does. The VFS (Virtual Filesystem Switch) is a prime example of object-oriented programming techniques. There are objects with public and private data, methods and inheritance. This just happens to be written in C. Another example of object-oriented programming is Xt (the X Intrinsics Toolkit), also written in C. What's important about object-oriented programming is the techniques, not the languages used.