You don't replace something that you depend on, for starters.
Then C is not portable Assembly that keep being talked about, so unless you stick with care to ISO C, there will be UB and compiler specific behaviour creeping into backend.
Even languages that use LLVM suffer from this, because its design is tainted by clang, and for certain bitcode sequences, it assumes C semantics.
This broke a couple of Rust optimisations. Not sure if they already got around fixing this.
Then C does not really expose the CPU features, so if you want to actually access everything. Either you need to support inline Assembly as well, or ship Assembly alongside C anyway.
Having C as backend is only useful as means to bootstrap an eco-system to not spend too much time implementing a backend.
However when a language matures, it is time to move on, just like C++ and Objective-C did.