насчёт тестирования: обмазывать всё final, вне всякого сомнения, очень здорово, но потом начинается геморрой "бляха, нужен интерфейс, ибо иначе не протестить", хотя суть класса такова, что его ни расширять, ни наследовать с точки зрения домена нет никакого практического смысла. Но и без интерфейса никак. Развивая тему, запилили интерфейс - теперь надо для тестов писать, как в примере выше, "тестовый транспорт", что опять влечёт накладные расходы.
Видел проекты, где упарывались по final, и где жили без него, в итоге, на качество архитектурных решений наличие или отсутствие final не влияло (по крайней мере, в этих случаях), а вот на оверхед с тестами - очень даже