I don't think this is correct at all, this new argument to _runcommand().
MongoCursor->ctor does not set cursor->connection anyway, so you are not overwriting anything.
Plus, _runcommand() further down calls _force_primary() (or not) to trigger "allow on secondary, fullfilling readprferenes"...

And the connection itself is then determine upon execution which in this case is: MONGO_METHOD(MongoCursor, getNext, retval, cursor);

That winds up calling mongo_cursor__do_query, which then picks a connection to use, irregardless what cursor->connection was set anyhow