When an object is deleted, all procedures in execution belonging to that
object or being called by that object were getting immediately terminated.
It no longer terminates procedures that were called by the deleted object
but it still terminates procedures belonging to that object. (That's how it
behaved prior to release 273.) When execution returns to the deleted
object's procedures, they immediately terminate and return to the caller.
Having it terminate code called by the deleted object (but not belonging to
that object) was causing subtle problems in recursive situations. The only
change retained from the 273 modification is that sleeping operations
(sleep(), input(), shell(), and so on) being directly called by the deleted
object are immediately terminated.
Note that you can always disassociate a procedure from its object by setting
src to null, but the default behavior is almost always what you want.