a) A lack of strong typing
b) A custom compiler toolchain
llvm already has instrumentation/ coverage support and generics make it easy to work with higher level constructs than bytes, although you generally do want to just work with bytes when fuzzing imo.
The language is weak, therefor the language has to add more and more batteries-included because extending it is purposefully difficult.