If the return type of a method is ��, 18.5.2 says it should be immediately resolved in order to allow for capture. The specific condition:
"B2 contains two bounds of the forms S1 <: �� and S2 <: ��, where S1 and S2 have supertypes that are two different parameterizations of the same generic class or interface"
This fails to consider (or is at least ambiguous about) the possibility that S1 or S2 can be _inferred_ to be the same parameterization of the same type. E.g., 'C<String> <: ��' and 'C<��> <: ��'.
This check is a heuristic; the simplest way to relax it in order to permit cases like the above is by asserting that S1 and S2 are proper types.