In case of mining or rendering application is aware of multiple GPUs in the system and it's the application that's partitioning the load. It's also applications that ensure that data needed for that specific partition of the problem is available on that specific GPU (this part is changing with unified memory though).In fact, even multiple graphics cards used for mining or rendering (blender etc.) or the accelerators in supercomputers do work together very well already. The culprit is gaming: Vendors insisted on maximum length of benchmark bars for gaming and focused on AFR, which in turn introduces a whole load of troubles on it's own.
In the early days, screen partitioning in one way or the other was the method of choice and it worked rather well - at least compared to AFR-style mGPU. Problem is/was: How to market all the hassle with two or more GPUs [cost (2 cards, mainboards with 2x PEG, PSU, electricity) and noise] when you won't get 2× performance - while your competitor might actually do that by accepting all that is bad in MGPU (aka AFR). That's what broke the neck for MGPU in gaming, IMHO.
Games on the other hand are not using two explicit graphics devices in SLI/CF case. So there were always limits as to what driver has been able to figure out on its own. AFR is simple (render one frame on GPU 1, render next frame on GPU 2), but even this is beginning to break down this days when some intermediate steps may persist for multiple frames and as such require sync between the GPUs. Other approaches started dying earlier as render to texture became more widespread. Rendering say half of render target (say shadow map) on one gpu and another half on the other will need driver to sync both halves to both gpus and merge it on both gpus before using it later. Note that z-buffers (shadow maps) were also compressed before normal colour render targets were...
Multi GPU has been a sort of dark magic that "just worked" unless you did this and that and that for almost its entire existence with the exception of original Voodoo, but those were simple times.