Why is `Base.return_types(String, Tuple{AbstractVector{UInt8}})` so pessimistic for this method?

As I explained here, I’m not sure you’ll get much support for this idea. Relying on world-splitting like this is generally considered a bad idea now, and attempts to fix it like this will just be an endless game of whack-a-mole.

More likely would just be that people support turning on max_methods=1 so that no world splitting occurs, and thus no code needs to be recompiled if someone adds a wonky method to length or string.