Dave,
The purpose of this function is specifically to trigger an update through the
context ID hierarchy. If you'd rather not trigger this update, it's best not to use
this trigger. The reason we implemented it is because it seemed like 90% of
the time it was the right behavior, and 10% of the time it didn't matter. We
haven't found an example yet where this is the *wrong* behavior. That said,
it's very possible that the function could use a bit of speedup.
examples of cases where this is very useful:
1) update a message or add a new message in a forum: the forum has new
information and thus updating its last_modified makes a lot of sense
2) update a file in a file storage folder, and its parent has been updated in the
logical sense, so why not do it in the data model, too.
This also amortizes the cost of figuring out "newness" by updating information
at insert/update time, and not having to do crazy queries at every selection.