The idea is to have a new emerge --preserved-rebuild target which can serve as a substitute for `emerge @preserved-rebuild` and is suitable to be triggered as a post-merge step that runs automatically after other update commands.
The --preserved-rebuild target should not rebuild preserved-library consumers that are eligible for removal by --depclean, since it is typically a waste to rebuild such packages. Also, such packages may introduce conflicts in the dependency graph, which is yet another reason not to rebuild them or add them to the dependency graph.
When FEATURES=preserve-libs is enabled, the --preserved-rebuild target should be enabled by default as a post-merge step that will run automatically when preserved-libraries are detected. Users will be able to optionally disable this by specifying --preserved-rebuild=n on the command line or via EMERGE_DEFAULT_OPTS in make.conf.
When the --preserved-rebuild target is triggered after another update command, it would be useful for it to have a memory of packages that were updated or rebuilt by the previous update command, and to avoid rebuilding packages that apparently link to the wrong library version (like in bug #230257).
Also, when a library is downgraded, it's expected for new builds to link a preserved library with a version that is newer than the one that we are trying to downgrade to. Therefore, it might make sense to have FEATURES=preserve-libs skip library preservation during downgrades.
It would also be useful to trigger rebuilds of packages that consume libraries that are eligible for removal by --depclean. For example, this case currently happens when dev-libs/boost is upgraded to a new SLOT. All of the consumers of the old SLOT need to be rebuilt to link with the new SLOT. This currently is not handled by FEATURES=preserve-libs, since that only preserves libraries when a package upgrade replaces an older version with identical SLOT.
I think automatic rebuilds triggered in andvance, as is made possible by EAPI 4-slot-abi, is probably the best way to handle automatic rebuilds:
*** Bug 290781 has been marked as a duplicate of this bug. ***