One thing I love about #jujutsu which #git misses is the ability to treat sub repos as full fledged forks. This is naturally comfortable to work with, especially when you need to make changes along with other modules then push them back upstream.
The closest thing I get is using ingydotnet/git-subrepo and push module changes to a local clone dir (yes you can do that with git). Then you can prepare it for PR to upstream.