Routing mesh treating manager node differently than worker nodes

I’m playing with a simple scenario on docker swarm. Three identical (the same template, ports etc.) micro machines on EC2.
One of them was set (manually) as a manager, other two as workers.

I have added simple replicated (3 replicas) service showing server details on port 80:

docker service create --name my-web --publish published=80,target=80 nginxdemos/hello
docker service scale my-web=3

Tasks are then spread evenly across the nodes – 1 manager/worker and 2 workers.

When I’m hitting public IPs of any of worker nodes I’m getting load-balancing between worker1 and worker2 (it never hits manager node). On the other hand, when I’m hitting manager node public IP load is never balanced on workers.

I would expect to be load-balanced between all 3 nodes more or less equaly.
In practice though manager looks like working in host mode, while workers ignored manager in the loadbalancing?

Source: StackOverflow