It makes known-good trees to fail to rebuild, triggering assertion errors in places where the code wants to back out a move and needs to rebuild a state that was previously built correctly.
The saio_debug module is now unused (and not even compiled in). The rest of the code got cleaned up from adhoc debugging and instead now exposes a few strategically positioned DTrace entry points.
Taking the internediate cost of each subtree led to too many rejections.
Rejects bad soltions much faster, saves pointless joinrel creation.