Проблема, которую я вижу с соглашением Java, состоит в том, что нет способа указать несколько импортов одного и того же имени класса в разных пакетах. Итак, предположим, у вас есть два класса, как ...
com.yourcompany.blah.blah.verylong.blah.blah.FantasticClass
com.someothercompany.blah.blah.also.very.lengthy.blah.blah.FantasticClass
... внутри одного Java-файла вы можете использовать импорт только для одного из них. Если вашему коду нужно использовать оба класса, вам придется написать объявления переменных для одного из них с полным именем пакета. Это означает, что вы получите громоздкий код вроде ...
com.someothercompany.blah.blah.also.very.lengthy.blah.blah.FantasticClass = new com.someothercompany.blah.blah.also.very.lengthy.blah.blah.FantasticClass();
... или странные упражнения по рефакторингу, чтобы избежать этого.
Помимо этого икота, который можно довольно легко исправить с помощью новой языковой функции, такой как "псевдоним класса импорта class2", я предпочитаю простоту подхода Java.