I don't think that's necessary. Swift Package Manager doesn't currently make such a distinction, and yet forks and overrides still work.
What you're proposing here is essentially to make the name
parameter (added by SE-0226) in dependency declarations mandatory. I think @tonyarnold has the best take on this:
For id
to work, you need a centralized registry to coordinate who gets what identifiers, which we don't have. URIs provide the same uniqueness guarantees without requiring a central naming authority or any changes to package manifests.