Imagine you want to reset your Docker swarm from time to time.
How do you distribute join tokens to those zillions of nodes? How much automation is possible here?
Have the Swarm Manager place the worker join token in a Key/Value store. We use AWS Parameter Store but I believe Consul would be another option (I don't use it).
Each node can then retrieve the token while it is bootstrapping.
Simple answer with infrastructure as code, you don't rejoin nodes, you trash old nodes and bring fresh nodes to join the cluster.