I used to be a big fan of DOM Mutation Events. They provided a simple way for scripts to monitor changes in the DOM, irrespective of the event or action that caused them.
However, that simplicity masked an underlying problem — mutation events were not well implemented, and they plagued browser development with performance and stability issues. They fire far too often, they're slow and hard to optimize, and they're the source of any number of potential crash bugs ...