Probably from the developers making something (Salt?) automatically apply certain tags in certain circumstances. For example, my understanding is that the Whonix tags are the result of the Whonix devs using tags in order to enforce various things, e.g., ensuring that Whonix templates update always and only via a Whonix Gateway (e.g., sys-whonix).
Or maybe related follow-up question: Does it make sense to add the tag anon-vm to qubes that don’t have a whonix-ws as template, but use a whonix-gw as netvm?
If you add this tag then your VMs won’t be able to get time from your clockvm (source):
VMs to communicate with the default clockvm (by default sys-net , adjustable via policy redirect as discussed below) to request the qubes.GetDate service
The whonix-ws is using sdwdate to update and randomize clock instead. So if you add sdwdate to your qubes that don’t have a whonix-ws as template than it should work.
Also here’s more info on tags: