Object destruction not caught in write-on-change logic

The problem was that after the [next] chain on [destroy] the object
would obviously no longer exist, thus leading to badness as the
filter logic was still trying to use it. Instead now if [destroy] is
detected the filter will simply return. Due to this change changes
made in [destroy] methods should now be written sooner, ie. before the
[next] chain of [destroy] completes (as the object will have disappeared
by then).