Because people keep repeating the urban myth of portable assembler and being the very first systems programming language.

One of the very first systems programming languages was JOVIAL, from 1958. C's inventors were still finalising their studies.

I don't know how to phrase this to reach through, but you're barking up the entirely wrong tree. It's not about the CPU, it's about the level of freedom afforded by the language; how close to hardware it allows you to go, how few hoops you have to jump trough to get there.

The other approach, taken by Rust (and to some degree C++), is to nail everything to the floor and force the programmer to express a solution in a specific format that's easier to verify and make guarantees about. Which is fine.

Both approaches have their appeal, which is best depends on context.

Which is again nothing special about C, other languages offer similar capabilities, I have provided a list in a sibling comment.

Keep waiting for the examples where they can't do what ISO C allows for, and if the example uses compiler extensions to the ISO C, I also feel within the right to use extensions to those languages on the counter example.