SQLite Forum

Non primary key alias to rowid
> As long as the row is not deleted, it retains its rowid.

This is only true if the rowid is used as an "integer primary key". If it's a regular rowid table where the rowid isn't aliased, then vacuum can change all the rowids for every record.