Ну может у коллег будут другие мнения, но как по мне, каждый слой должен быть отдельно. Кода становится больше, но он гораздо проще и его в разы легче дебажить. И если у тебя измениться что-то в апи, бд это заденет минимально
Это разные парадигмы. Сейчас минус SwiftUI в том, что он нормально работает на iOS 14+ и, самое главное, что есть некоторое кол-во недоработок, даже много (но, это с каждым релизом решается).