In the ideal world you have 64k joins, now the world is not ideal and random numbers will collide sooner with the set of used numbers. However, while not to be used for every transmission (also not ideal from airtime and battery usage) at least a couple of thousand joins are workable for a node. So no need to be overly concerned when it comes to battery changes and the like.
With regards to distance, that hugely depends on the antennas of the node and gateway, I’ve joined nodes > 5km from the nearest gateway.