The seed list is exactly that, the driver will query that list to understand the map of the replica set. This means it can actually use members NOT on that list, i.e. it can use S3
.
When the driver has to detect a change in the replica set, either by failover or by starting up it will query one of the members of the seed list for basically a rs.status()
and it will store the result in itself for a time that the driver deems worthy to refresh it, or something happens that forces the driver to refresh it (i.e. failover).
So the answer is yes, it will go for S3
.