I don't know about C-style libraries being the lowest common denominator. C-style linkage is certainly easy enough to support in just about any language, but I've noticed a trend where newer technologies often don't have C libraries available for them. I attribute this to the difficulty of writing a complicated library in C. Sure, you can link it with just about anything, but writing the whole thing in C? You must be crazy.
Which brings me to my main point about C, and why I'm currently writing a network application in C :). C is the only really portable language (which is rather ironic, considering how easy it is to write non-portable C code). If you're writing the next Apache, you're probably going to write it in C, because such a fundamental bit of network infrastructure really has to be buildable everywhere, and you're only going to be able to get that capability with a C infrastructure.
Heck, just about every other scripting language has a C backend. The fact of the matter is, you can't write the interpreter for your next generation language in that language. It's a chicken-and-egg problem. Once you have the language up and running, it's convenient enough to build the libraries and such in that language, but the core is generally in C. That's actually the approach I'm taking with the application I'm writing. Right now, it's mainly an exercise in designing all the support infrastructure for a scripting language to run on top of.