Your comments
OK, then I change this topic to be Mercurial-specific.
This is no purely local operation and hence would take a significant time.
You already can do that in the preferences.
Just clone the repository without submodules. Then you can initialize them selectively.
This could take some time and the refresh performance would become worse.
There is no way to determine from the locally available information whether a tag is local only or exists in a remote as well.
Customer support service by UserEcho
Local | Toggle "Assume Unchanged" and Local | Toggle "Skip Worktree" already do what you want.