>>22You missed the point of C.
C is an untyped language with optional types on top. C evolved from the untyped BCPL and B languages. This type became C's int.
literally whatever they feel like doing means what the underlying hardware actually does.
Compilers use this to do optimizations because C is being used as a general purpose language when it's not. C isn't meant to be easily optimizable. C is not Fortran. It's meant to make it easy for you to write the optimizations in your own code.
C was invented for writing kernels and drivers in Unix, without needing much assembly, so converting integers to and from pointers is easy. You need the same things when making a garbage collector, for example.
People are using C when they should be using Pascal, Fortran, PL/I, or many other languages. These languages are more easily optimizable than C (without breaking the semantics of your code), compile to native code without a large runtime, and don't have GC either.