When using --autounmask-continue together with --binpkg-respect-use, it's possible for emerge to reject a binary package due to "non matching USE" and at the same time apply an autounmask change that would cause the rejected binary package to be acceptable. The result is that the package is rebuilt unnecessarily.
It should be possible to search self._dynamic_config.ignored_binaries for binary packages that match the current set of autounmask changes, and trigger backtracking calculation in this case.
Patch posted for review: https://archives.gentoo.org/gentoo-portage-dev/message/aaf8bab8f1ca89dfc493477e4ca4a512 https://github.com/gentoo/portage/pull/171
This is in the master branch: https://gitweb.gentoo.org/proj/portage.git/commit/?id=60af7e2696b96b47b0cd9e70caabd10546206b8b