I’ve summarised my own workflow here in the past. It basically comes down to minimizing performance problems & maximizing convenience/adaptability for me. Version management is still done by hand though, but all the fancy stuff your editor does for you anyway should work out of the box. I definitely use git repositories for every module though.
I don’t usually use submodules. If it’s important enough to factor out into a submodule, it’s usually important enough to make it its own thing.