You don't find it useful that use after free, double free, uninitialized memory, and many kinds of race conditions are just impossible in code that compiles?
What exactly is the low level subset you feel like you can't use?