Мне кажется, что будут проблемы с пониманием неймингов, если называть Worker'ами всю бизнес логику вне интеракторов. В Сlean swift Worker преподносится так, что он связан с сущностью модели и не завязан на конкретный модуль.
Я бы не стал называть класс, работающий с сетью Worker, делать зависимости воркеров друг на друга и если хочется сделать Worker для модуля, то назвать его как-то по-другому, мб Facade.
Не нравится удвоение кода в месте, где мы смотрим перешли ли мы по segue или сами. Кажется, что лучше договориться внутри проекта переходить на экраны только через segue/только программно. Тогда будет лучше и для быстрого понимания где искать переход на другой экран, и меньше кода в роутере.
Это можно сделать, если вынести init в extension
Я бы не стал называть класс, работающий с сетью Worker, делать зависимости воркеров друг на друга и если хочется сделать Worker для модуля, то назвать его как-то по-другому, мб Facade.