There isn’t a way to do this currently. I think adding an option like llvmVersion or something to crossSystem would make sense though. We might also be able to just use LLVM 9 or 10 always for cross-compilation.
The problem with using something like alternatives here is that you can’t just override the “clang” due to bootstrapping dependencies. You need it to be some kind of configuration option.
I was thinking more choosing stdenv.cc. Also I’d love all the choices outlined in Assembling a Complete Toolchain — Clang 13 documentation to be made independently all sorts of LLVM vs GNU mashups. Once GCC is broken up both should be bootstrapped the same way.