I'm actually working on one... well, it's a lot more than a C++ to C transpiler, but it's just one of the features it contains. It's actually a C/C++ derived language which currently aims to fully support C23 and C++17 in addition to its own extensions which bring in features from other languages like PHP, Rust, Python, Perl, Ruby, JS, etc, as well as auto-including headers, and auto-resolving namespaces. It can JIT execute and also generate executables, as well as emit standard C code you can compile with GCC or CLANG.
So this makes me think that a "better" idea is let C be the actual underlying foundation for all of these languages because most languages are written in C (and C++) in the first place, so instead of forcing this strict divide, why not allow for every language to be transpilable into C so that the end result is that you could code in any language you like, because in the end, it can all be compiled with a standard c compiler? This could just be the new rule going forward... want to make a new programming language? Sounds good... so long as it can be transpiled into C code. Doing some weird shady stuff that generates machine code directly? No problem -- put it into a library that can be linked in.
Oh wow, interesting project... I've also been working on a "better c" for a few years, and while it was originally a JIT language (using jitasm), I recently switch to MIR, but since I already had my own lexer/parser/etc stack, I ended up changing it to basically lower everything into a node_t compatible AST tree and handing that off directly to c2mir, bypassing its parser.
https://github.com/derekbsnider/madc