Why would it require clang for the C components? The Rust compiler creates native libraries which can be linked to compilation units created by both clang and gcc, unless there's something special going on in the kernel that I'm not aware of.
Not really. Unless you want LTO, the object files generated by GCC and LLVM are compatible, and can mixed without issues.