Yes, but a pushed tag `test` pollutes a local `test` name for everybody, whereas `test` as a local branch is just a local branch. A remote `test` branch is only referred via `<remote-name>/test` from a local POV.
IIRC, in `git fetch` if a tag is contained in one of the updated branches, you get it automatically without specifying an additional flag. What you say is true for 'orphaned tags' which no remote branch contains.