Indeed, C is a much more complex language than people realize. I work at a company doing a lot of embedded software in C on platforms where it's rough to fit a reasonable C++ implementation, let alone Python or similar. During interviews, I see a lot of people who believe they are experts who get flummoxed by "what is the different between const int * foo and int * const foo?"
Another question that springs to mind, but is (comparatively) a less practical factoid: "What does the comma operator do?"
At the same time, the error in your examples that you highlight will be caught by most modern C compilers in some form, though you might have to tell it to give you all warnings.