For most cases, the event system should be used.  However, you have found another function with a bad name (one which @ellisonbg struggled to find a good name for).  The reason this function exists is that there is no way to track which backbone view changed the model (AFIK, maybe I'm wrong).  This is important for the IPython notebook because we need to know what cell to wire the stdout, stderr, and display to.  Unless there is a way to keep track of which view is making the model changes, I don't see a way around using a method instead of the backbone events.