Reproduction script
Expected behavior: The file compiles successfully
Actual behavior: The function x requires an additional <T as Foo>::Baz: Bar<U>. This check is entirely redundant with the trait definition, and would always have to be true for T: Foo<Bar=U> to hold.
This only occurs if the constraint referencing the first associated type is a parameter to the trait, not an associated type, which is why this doesn't happen for IntoIterator. This appears to have been an unintended side effect of RFC 1214