C is just the hardware memory model, about as honestly as anyone can present it in a language higher-level than assembly. There are still situations where that is exactly what you want/need, which is why we'll probably still have a lot of infrastructure written in C for the rest of time.
Of course, that's a niche. You don't always want a language that's just the hardware model with no condom. Most languages don't! (Nearly) everything that ISN'T that C niche offers some kind of abstraction, like reference counting, garbage collection, affine types, or (in the case of #pronelang) pervasive value semantics via COW.
Because programming isn't a zero-sum game with one right tool for all jobs, there's room for these models to coexist with each other, and C also makes an excellent lingua franca to glue them together. Well, room except in Rust Missionary brains, which are very "this town ain't big enough for the two of us." Which, you know, small spaces, I get it.



