I like Go more. The git/hg/svn/bz repository is the "package". No custom (and central) "registry"
Even immutable repos are going to have fun with DMCAs.
They can’t, at least not older packages, I believe they need to contact NPM if they wish to unpublish packages. https://docs.npmjs.com/cli/unpublish
You can use Gradle, which supports source repositories, instead of Maven: