Thanks for your comments Andrew.
You are right!, the acs_rels and the acs_objects would be merged at a global level with an "update..." .
I forgot to post that I uploaded more details about it, You can check it out in https://openacs.org/storage/view/proposals/user-account-merge-um/index_draft_version.html. In that document I wrote and example only with faqs, that's the reason I putted the join with faq table, however, when we will implement in general, we have to do it globally as you said.
With regard to that you said that every package need special action and some pages may have special user interfaces for human-assited merging:
1. The special action per each package would be needed because exist packages like "forums" that has tables with columns that reference the account to remove, for example: the table forums_messages has a column named 'user_id' that references users(user_id). In this case we have to solutions explained in the link I wrote above.
2. The aim is to use the same user interface to merge all the things you need to. I mean that we will not need special user interfaces for human-assisted mergin.
I hope that information can be useful for you and thanks for for thoughts.
If you have more suggestions or questions, please don't hesitate to ask :).
Enrique.