1) emerge --world update, do not check if the virtual/foo dependancy is satisfied, before adding the default package for that virtual to the update list. Example: I have net-mail/postfix installed, which provide virtual/mta, but emerge --world update still wants to install net-mail/ssmtp. 2) lets say i want to merge gnome-extra/gnome-db, but do not have gnome-extra/libgda .. libgda will be merged as well. Now, both have pkg_postinst() functions, but only gnome-db's get run when they are merged in one shot (libgda was not merged, so got pulled in by gnome-db).
*** Bug 416 has been marked as a duplicate of this bug. ***
For 1), we will be tweaking "world" support significantly which will fix this. For 2), both pkg_postinst()s really *should* run. If both actually get physically merged, pkg_postinsts get run. It's in the same code path.