C is a high level language. It is not close to the hardware is a large number of substantial ways. Memory is not flat, CPUs do not execute instructions linearly.
Embedded *can* be fun. We produce some embedded software. Not surprisingly, most people in embedded also use toolkits. The people building those toolkits are the real rockstars.