This is required if you do systems programming (e.g: kernel development).
The main loops are all assembler, but the support code is in C, but the C code is used as a more expressive assembler, and linking with libc requires way too much memory.
All this means that I don't even have things like memcpy() available. In a way it's a quite liberating way to program, since you are in full control of the hardware.
I guess yesterday's computers is today's embedded hardware.