I\'m not sure what the technical term for this is, but consider an interface:
public interface SomeInterface {
public T doSomething();
}
"At this point what I am looking for on this question is the reason that the language requires this duplication"
Well, the language requires that you define 2 type parameters in your example because there are, um, 2 type parameters in the problem you describe: you wish a method to be variable in both the type T and also in the implementation of SomeInterface.
These are orthogonal considerations and hence you need more than one type parameter to represent them.
Type parameters do not of course need to be defined on a class/interface; they can be defined on a method. J-16 SDiZ's answer allows your related class/interface to have one type parameter only. The second type parameter is then declared only where it is needed, on the doSomethingRelated method