With the current pyro (5686f4e1fe5229705b8c7d35895aa03827796d13) branch, if I do a build without 'INHERIT += "rm_work"' and then immediately do another build, then no tasks needed to be rerun as expected. If I add 'INHERIT += "rm_work"' then the subsequent build reruns a number of the image related tasks. I have seen this behavior in both the pyro and master branches as well as against several different MACHINE settings. I'll attach a text file with some of my logs.
Created attachment 3893 [details] Log of build steps showing the issue.
This turned out to be quite tricky but there are patches on the mailing list for testing for master. Not sure we'd want to backport things this invasive to pyro.
For what it's worth, I applied the 5 patches from this series: http://lists.openembedded.org/pipermail/openembedded-devel/2017-July/113929.html to my local build tree in both the Pyro and Master branches and verified that indeed the extra rebuilds no longer occur. I did have to modify the patch slightly to drop the bits related to systemtap but otherwise it seemed to work.
These were merged into master: http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=a089f7b73581f975258dfddaef9f9063ff0f8818 (thanks for testing)