А есть такой вопрос, сложно ли функционал переносить в модуль?)
Не сложно. Надо понять основные принципы. В каждой команде понятно, свои погремушки.
Но, общие модели пихай в отдельный модуль (spm или pod), общие сервисы тоже отдельно. И картинки если много - в отдельный pod.
А дальше функционал экрана или группы экранов выносишь в такой же под. И если они с другим модулем должны взаимодействовать, то напрямую подключать нельзя, только через общие модули это делать.