I think this is a bit misleading - you can write `fn produce_iter_static<X: Iterator<u8>>() -> X` which is the signature analogous to the first example. I realise you want to avoid this for various legitimate reasons, but this reason is a bit more subtle.