As you have said, it occurs anytime the row is physically moved on disk, such as:
- Export/import of the table
- ALTER TABLE XXXX MOVE
- ALTER TABLE XXXX SHRINK SPACE
- FLASHBACK TABLE XXXX
- Splitting a partition
- Updating a value so that it moves to a new partition
- Combining two partitions
If is in an index organized table, then an update to the primary key would give you a different ROWID as well.