2 крупных проекта сейчас, в одном Swinject, в другом обычный протокол DostavistaContainerProtocol в котором перечислены все зависимости. Разницы нет. В конечных resolve кложурах свинжекта все равно все явно передаем через init-ы. Проблем нет ни там, ни там. Однако Swinject это тоже зависимость. Ирония: зависимость для управления зависимостями. Я бы не был так критичен по отношению к велосипедам. Часто свое простое решение из одного класса, которое явно решает конкретно твою задачу в 100крат лучше чужой зависимости. Это вендорлок.