Для чего в проектах принудительно используют use?
Минусы как бы очевидны:нет, не очевидны, по крайней мере миллионам разрабов

1 Код становится трудно читаем. По месту использования не всегда понятно что имеется ввиду под Order::load() - \Framework\Sale\Order::load или \Vendor\Project\Sale\Order::load - приходится проматывать к верху файла.Вам как разрабу должно быть в принципе фиолетово, какой из пакетов используется, если они соблюдают один интерфейс. Если не соблюдают, при том что называются одинаково, значит все пошло не так задолго до проблем с определением пакета...

2 Код становиться длиннее - там где было бы просто:
\Framework\Main\UI\Extension::load([ 'vendor.module.components.cabinet.personal' ]);
приходится писать:
use \Framework\Main\UI\Extension;
Extension::load([ 'vendor.module.components.cabinet.personal' ]);Код становится длиннее в проектах где 2 контроллера и в них по 1 экшену. Там где Extension::load будет вызываться больше одного раза, очевидно экономия на эксплуатации клавиатуры заметно увеличивается. А в больших проектах создание объекта может (и будет) повторяться многократно.

4 Код становиться замусоренным, так как верхушки файлов запросто превращаются во что-то вроде:Если не обращать внимание на отсутствие пункта 3, то... нет, не могу не обращать внимание, вот же торопыга....
Во первых - данная портянка очень аккуратно прячется любой адекватной ИДЕ, 
Во вторых - это правильно и логично, хранить все импорты в одном месте
В третьих - если ты пишешь неимпортированный класс в коде - ИДЕ обычно предлагает варианты внесения его в блок импорта, и все выглядит аккуратно.

И хрен его знает используются импортированные классы ниже ещё или уже нет, ведь никто не убирает этот мусор.Хрен не знает, а ИДЕ замечательно знает и даже подсвечивает серым цветом неиспользуемые.
Если это встречается в нескольких местах или таких записей много. Чтобы было читабельней.