This is clearly intended as an alternative to submodules.
An alternative, not a replacement. Vdm is specifically designed to track code dependencies. There are use cases like monorepos where vdm won’t work.
Neither does Git though. I’m not really sure I follow your point.
Git does track submodule history unlike vdm.
By default, vdm sync also removes the local .git directories for each git remote, so as to not upset your local Git tree.
Git submodules don’t delete those .git directories. It uses them.
If you want to change the version/revision of a remote, just update your spec file and run vdm sync again.
This is not how git submodules or subtrees work.
vdm does depends on git being installed if you specify any git remote types
Support more than just git and file types, and make file better
Git submodules and subtrees don’t support anything other than git remotes.
Gitlab is very complex and a heavy resource hog. You probably don’t need it. Most small to medium enterprises can comfortably host their projects on lightweight forgejo or gitea (speaking from experience). They even have functionality similar to github actions. If you need anything more complex, you are better off integrating another self hosted external service to the mix.