The general rule is to handle line notifiers with care, as they can easily become very intensive otherwise. For example:
You might wanna add/remove these notifiers dynamically when changing pattern.
User triggered actions like copy/cut/paste track data will flood the line notifier for each line having pattern data (or maybe even each column… can’t remember). This can be circumvented by using a one-shot scheme based on an idle_notifier or a timer, checking periodically if something happened.
Furthermore, dismiss any irrelevant changes at an early stage (like pattern data that was changed in a track that you’re not interested in).
It would be possible to make a custom comparison to a cached version of the patterns/tracks data (that gets properly updated), but I can imagine that such a scheme would easily introduce some noticable lag (quite a bit of song data scanning involved when caching stuff). It’s theoretically possible and probably “fast enough”, if really really needed. I am guessing that the net gain in speed won’t be much, compared to sending values from columns that weren’t updated.