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.