This is cool and all, but the problem with doing this in C, is if you accidentally do a memory corruption bug while you're just messing about with the code, now you're forced to restart.
Not a problem in a toy app, but in something like a huge program, it can be a PITA to reload everything and get back to where you were.
Yeah, C really does not support this as a language (or implementation) feature - it's something that can be hacked in, with a lot of difficulty, inconvenience, and loss of safety guarantees.