From an amateur's perspective, I have gathered this impression: C was written at a time where we were barely past assemply. Though this may sound like an argument against it, it is an argument for it. When C was designed, it was designed with a mentality of writing something machine-like. Because C was so powerful and paradigm shifting, made programming so much easier and more human, people started to think in terms of what I as a human want to see instead of the old what it the computer will best understand. So they designed many languages that are much more human comprehensible, but much less powerful. When you read all of these discussions on new languages, there seems without fail to exist somewhere the quote "of course C still makes faster software, but." And I think it is faster precicely because of the thing that all the new languages see themselves as fixing, this machine-likeness.
Probably C already achieved some optimal human-machine balance of abstraction that cannot be beat with enough of a margin to make it worth replacing it. The best a new language can do is find a use-case where a higher level of abstraction is worth a hit in efficiency, like Java and Python have done. Probably the mistake, at least with Python, has been to try to use it for things that C would be better at, creating bloat and heavyness accross the softwarescape.
Again, complete amateur here.