У меня сложилось впечатление, что git и его подход с submodules Вам не подходят.
А что если попробовать управлять зависимостями на уровне сборки проекта?
Я работал с системой сборки BAZEL и там это было достаточно хорошо сделано (Working with external dependencies).