Мои мысли по этому поводу:
Удаление final
в классе не вызовет немедленных проблем.Но учтите следующее:
Был финальный класс AdamsFactory, который вы изменили на не финальный.Через два месяца к вашей команде присоединился новый программист по имени Дилберт.
Он подклассирует ваш класс, который должен был быть финальным, в ScottFactory, но нарушает принцип замещаемости Лискова.
Затем ваш класс ComicStripPrinter использует ScottFactory вместо AdamsFactory.Что-то обязательно сломается.
Что возвращает нас к тому, что говорит Джошуа Блок:
Если вы намереваетесь наследовать: спроектируйте его с обдумыванием и задокументируйте.Если вы не намерены наследовать, то предотвратите его.
Надеюсь, то, что я сказал, не было большой нагрузкой.
РЕДАКТИРОВАТЬ:
Go предисловие Java Langauge Specification и поиск Джошуа Блоха:)