I wonder if it wouldn't be possible in this particular case to partially revert back to the old behaviour and update last_modified of a forums_message that represents a thread start everytime a child is posted. The problem here is that in forums, the message object is not only representing a message, but sometimes also some kind of 'thread' object which requires different treatment by search to produce meaningful search results. I think that the search results (as seen on openacs.org) have become better since indexing was changed from treating each message as a single item to summarizing threads as items to index. But that meant relying to a certain extent on the existance of a 'thread' object. Would that change break some definition of last_modified that is unknown to me?
The other solution would be to add a last_modified to the output of the search service contract, which seems somehow wrong to me since there is this general column in acs_objects which propably makes sense for most objects.