If I don’t publish my code, I can checkout the imported module locally with the tag that I want to use, and add this in my go.mod file:
replace abc => /{local-path-to-abc}
But if I publish my code, and somebody else wants to use it, they also have to checkout the specific version of the abc module manually (or a newer version, if they prefer), and they have to use the same local path, or they have to modify my go.mod file.