When changing DISTRO_FEATURE (say, adding "x11") the entire distro is rebuild, including gcc-cross and so on. It would be great if the recipe checksums somehow incorporated the distro features the recipe actually examines, so only recipes that would change are rebuild.
Note, that some -native packages also appear to inspect DISTRO_FEATURES and that causes them to rebuild as well. For example, python-native inspects it looking for the existence of ipv6. What is probably needed is to either sanitize the -native items, or clearly label the ones that do change behavior based on the target DISTRO_FEATURES. (Another option is to use DISTRO_FEATURES_class-native to set it to a default that will work in all configurations?)
I've posted a proof of concept on this...
Fixed in master http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=a10301f6a90567c2d2eca9306a4b7b752f58a9c2