I've come around to agreeing with @kring that it's worse than useless for destroyObject to delete properties from the object anyway, since in the event a destroyed object does get used, it's helpfully removed all ability for a developer to debug the problem.  Installing functions that throw seems like reasonable fail-fast behavior, though, since there's (typically) no state information there.