Re: OOOS
"My experience of OOP is that it can be very good in some problem domains and a right cunt in other (most) problem domains."
Well yes, but that applies to anything. OOP's advantages are the Human factor, OOP programs are much easier to maintain and understand for Humans. That maintainability is essential for business applications of which there may be many, which are rarely worked on/updated.
And this is the balance, you pay for that maintainability with increased overhead, but as the poster above said, for most uses (APIs, GUI applications), that is a fair trade-off.
Where it's less of a fair trade-off is in a kernel, but the Human factor is less of an issue here too, as kernel developers don't generally need to read the code to understand how the kernel should function/behave, they're kernel developers dealing with a very specific problem domain, not business developers dealing with a multitude of applications from all over the place.
This is the same reason you don't see much assembler these days, because that is the opposing end of the spectrum to OOP and there are limited places the trade-off is worth it.