Haven't looked at what it would take to support C89 (or other) fully. Certainly it is possible to extend the compiler in small increments to implement more stuff: all the operators, local variables, arrays, pointers, functions, etc. The hardest part I would say is implementing types (starting with the C syntax for types!) and also handling the memory allocation for them. Nothing too complex when you know what you are doing.
My personal interest is with higher-level languages and I have worked on various Scheme systems over the last 30 years. If you like small language implementations then take a look at Ribbit which is feature-full with a tiny VM. Also check out sectorlisp (not my work) which is a fascinating tour de force.
Either by adding complexity (more features to the compiler) or dropping complexity (fewer C features in the implementation).
Did you ever look at that?
Edit: functions, enum, struct, arrays and maybe make all variables/functions a-z?
Edit2: https://joyofsource.com/projects/bootstrappable-tcc.html
Edit3: https://news.ycombinator.com/item?id=35135384