IMO plain C and C++ are good for different types of applications. Plain C, on the one hand, is good when you have mostly static allocation of memory and very little gets dynamically created or destroyed. This applies to most command line tools, emulators, Chris' jukebox, and so on. IMO it was a mistake writing Daphne in C++.
On the other hand, C++ fits well with an application in which objects are constantly being created and destroyed, and where the object-oriented philosophy fits well. Take a computer game like Diablo II, for example. You have auras, weapon effects, monsters spawning, treasure dropping, and similar events going on all the time. It's nice to have a object::~object() function instead of a zillion calls to free(). You might miss one and get a memory leak.