Есть ли семантическая разница между этими двумя объявлениями или это только синтаксический сахар?
class C<T extends C> vs class C<T extends C<T>>
Предыстория: Недавно я ответил на question на дженериках с использованием подхода C<T extends C>, а одноранговый узел предоставил аналогичный ответ на основе C<T extends C<T>>. В итоге обе альтернативы дали тот же результат (в контексте заданного вопроса). Мне оставалось любопытно разницу между этими двумя конструкциями.
Есть ли семантическая разница? Если да, то каковы последствия и последствия каждого подхода?