> Adding what amounts to a use-after-free bug to the protocol seems like a really bad idea to me.

Oh goody, a sarcastic comment which doesn't actually bother to explain the bug :)

Since what I describe is basically WeakReferenceable, it's not obvious to me that there's a bug. I tell you when the thing to which your Remote(Weak)Reference points is destroyed, just like weak references invoke finalization callbacks. If you try to invoke remote methods after than happens I just return you an error. What's the problem? This is exactly how weak references work.

> If your server-side app is sensitive to when objects are destroyed for any reason aside
> from management of its memory consumption, I'd argue your app is broken.

That's a really good point. Only CPython destroys objects deterministically when the ref count hits zero.

> Certainly it opens you to a denial of service from a malicious client, which might hold references
> to objects you'd rather it didn't

So my instinct to keep strong references only where they're needed is just bad? Should a GUI or a logger keep a strong reference to the things they observe?