Well, projects like the BSDs need a lot of platform support, where even LLVM is still lacking. You wouldn’t want a different compiler for each arch. There simply aren’t that many candidates.
eat the bullet: cleanup syscalls, write a full kernel using risc-v assembly with a conservative usage of the preprocessor. Get done with compilers for good... and only for that it would be even worth maintaining full assembly code for the few major ISAs and a generic C implementation which compiles with naive, small and simple C compilers and certainly not gcc or clang.