Entities loaded by a read-only query are correctly loaded and no snapshot is stored. However, the call to checkNaturalId() causes the state to be re-read from the database unnecessarily.
This happens when the entity (with natural-id) is read (read-only) and subsequently used in a many-to-one association. The fix seems to be simply skipping the checkNaturalId() call when the entity is read-only.
Bulk closing stale resolved issues