TL;DR: IDs of destroyed objects are reused for new objects, which breaks the function for checking that an object still exists. Fixed in debug mode but not in release.
It's fixed in the master branch since 2020, and is therefore fixed in 4.0.
People were still talking about it in mid 21.
Makes me wonder what else they "fixed" by changing the behavior in dubug builds and letting it crash in release.
You have to be able to trust the foundation you're building on.