Вот честно - вы сами на нём писали что-то большое?Текучка есть всегда, если у вас проект не на пол-года. И никто в здравом уме не будте набирать команду из гениев, как из идиотов. Всегда есть некий стандарт "обычного разработчика". И любому новичку надо потратить время и силы, чтобы "въехать". Чем меньше экзотики в проекте - тем быстрее это произойдёт и тем лучше он будет понимать логику тех, кто был до него. разница в квалификации даст разницу в скорости освоения - но и только.
Вы понимаете, что каждое "энфорсить" - это чьё-то время и чьи-то деньги? А когда это делается в языке - это даром. Энгфорсить приходится везде - но лучше, чтобы не приходилось докатываться до деталей вроде "в каждой функции первое, что делаем - это разворачиваем @_ в список именованных параметров".
Насчёт тестов - тем более. Каждый тест - это время на написание, время на поддержку и время на прогоны. И деньги, соответственно. И когда сам язык избавляет от необходимости проверки того, что в целочисленную переменную запихнули объект - это избавляет от совершенно бестолковой писанины.
QA от повышенных затрат здесь не спасёт - проблему-то найдут, только этот поиск стоит денег, и исправление - тоже.
Джава с фабриками фабрик фабрик - это, кстати, вообще о другом. Это о попытках перетаскивания энтерпрайзных джавовских фреймворков, биббиотек и прочего - вместе с практиками - с больших и сверхбольших проектов (там лучше безобразно, но единообразно, потому что иначе в голову не поместится) на средние, где получается уже избыток архитектуры/бюрократии.