Общая специализация наряду со значениями типов является проецируемой функцией будущих JVM; ссылку на страницу проекта Valhalla здесь.
Теперь, из того, что я понимаю, тогда стало бы возможно объявить:
final List<int> myList = new ArrayList<>(); // for instance
Но тогда List определяет другой метод .remove() в дополнение к тому, который определен в интерфейсе Collection, который принимает int в качестве аргумента, который является индексом в удаляемом списке; поэтому в настоящее время содержание List в приведенном ниже примере:
final List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.remove(2);
будет [1, 2], а не [1, 3] (выбирается наиболее конкретная перегрузка).
Однако, если в будущем мы сможем объявить List<int>, у нас будет проблема: какая перегрузка метода remove будет выбрана?