If 'gnus-verbose' is at least 7, you'll see messages of the form "nnimap:
Setting marks in %s..." when the read flags are being updated.
It's saved by 'gnus-summary-save-newsrc' (Z s), on group exit, at article
motion time, and at some other moments: it is *not* saved immediately
merely because you read an article (that would be much too slow with some
backends).