Consider the following.
Package A-1 had 'python' USEflag when it was installed. The flag was enabled and thus vardb now has A[python].
Now package A-1 has been modified and it no longer has 'python' USEflag. No packages matching A have 'python' in IUSE.
Package B-1 depends on A[-python]. Because A in vardb has 'python' in USE, emerge suggests user to disable that flag through package.use. But in fact, it is enough just to rebuild A as it no longer carries that flag, and package.use change is irrelevant then.
Your description is missing something. With the steps you descried, B cannot be installed.
If B deps on A[-python], then B cannot be installed.
- the installed A has USE="python"
- the ebuilds for A don't satisfy B's dependencies because they don't have 'python' in IUSE.
emerge correctly detects this and errors out.
And if I used the EAPI4 magical (-) use, wouldn't portage behave the same? :P
(In reply to comment #2)
> And if I used the EAPI4 magical (-) use, wouldn't portage behave the same? :P
If B depends on A[-python(-)] then it re-installs A and merges B after that.
Ok, after using a real test case the issue is invalid indeed. Forgive me.