I just tested this out using your code and can't reproduce the
problem. The difference between my environment and yours is I have one
primary and two secondaries instead of one secondary and an arbiter. I
even killed the primary so that a new secondary was elected and ran a
bunch of queries without creating a new connection instance.
A couple of things to note:
1. You say you have one primary, one secondary and an arbiter. Your
mongodb URI shouldn't list the arbiter.
2. You are running a pretty old version of mongodb. 1.6.5 is the most
recent stable release.
I'm going to retry the my test using the same mongo version and the
exact same setup. I'll let you know what I find.