Why aren't nodes indexed when they are saved? Why aren't nodes indexed when they are saved?

As we all know, node_update_index is invoked by search_cron, which means that the search index is only updated as frequently as cron runs.

I am curious why _node_index_node isn't part of the normal node_save process, eg

if ($node-&gt;status == NODE_PUBLISHED) {
  _node_index_node($node);
}


Is there a good reason for this?  Since this function is defined by the node module itself, I don't see how it is a separation of responsibilities thing, nor can I think of a good reason for not doing this.

The related question would be, is is safe to wire up an action to fire when a node is created or updated?
I believe it is in the interest of scalability. Imagine you had a large, popular site with user-generated content. Imagine you had users saving a node (say, posted a question or answer) every 20 seconds. Imagine a node being indexed as well as submitted every 20 seconds. The site would become unusable very quickly. So it's much better to allow the indexing to happen independently of node submission.