Essentially, everything currently as a package set could be done, or vice-versa (make a @changed-use). Either way, it should be consistent.
What about --emptytree? Is there a case where you'd only want to do the packages directly in the set and not their dependencies?
Since portage-2.1.9 we support separate @world, @system, and @selected sets, where @selected is just the packages from /var/lib/portage/world, and @world is the sum of @selected and @system.
I don't think we should provide several ways to do the same thing without a very good reason.
Use package sets for package sets and the various options like --newuse, --update, etc to apply configuration changes to the system. There is no need for consistency between the two kinds of things, since they deal with two different concepts (a set a of packages vs packages for which the configuration has changed).