Instead of pulling an image by its tag, swarm “resolves” the tag and uses the unique sha256 hash of the image at that point in time to pull the image. This guaranties that the exact same image is consistently used if the service has more than one replica. This is still true for a service with a single replica, as you could scale up any moment.
Now imagine your service starts with a single replica and you decide to scale up a month later, but meanwhile the tag points to a different image. If the tags would be used, you would end up having replicas created from different images.
An image tag is “just a handle” that represents the unique sha256 of the image it points to at the point in time. The images in your list with tags are high likely pulled via plain docker or docker-compose.