Currently they call storePossibleCursor with conf->getPrimary().getConnString(). This is incorrect since it could refer to a replica set while storePossibleCursor must be passed the exact (single) server that created the cursor. Currently, this can only be done by creating a cursor to run the command as is done in PipelineCommand::aggRunCommand().
Ideally a common runCommandWithPossibleCursor function can be provided and we can remove the "temporary hacks" that agg had to provide: https://github.com/mongodb/mongo/blob/r3.1.1/src/mongo/s/commands_public.cpp#L2059-L2074.