I agree that we should not automatically refresh.

Side note, I think we are missing some kind of immutable object type, or partial object type to deal with these types of situations where select() is used and we don't have all the data. Right now if you select() with a subset of fields and then flush() it is possible you could screw up the documents data.