It's pretty perilous to accidentally create multiple owned Ids for the same instance of an object. Maybe when an owned Id is created in Rust, we could set a flag on that object using the ObjC runtime's associated objects to ensure that no other owned Ids are created. (Inspired by @jrmuizel at gfx-rs/metal-rs#40 (comment)).
Alternatively, we could look at the reference count to verify this? But reference counts don't seem particularly reliable, as there might be auto-releases that are still pending.