SLI is mostly about the graphics drivers sending individual DX frames to individual cards and releasing the present call at an appropriate pacing so that the frames are spread out in an even fashion and that the game can just keep calling and rely on DX/drivers to pace the game for maximum performance.
But there are a few things a developer can do to break that, and I definitely do not know the entire list of possibilities but here are a few. The first is common in poor console ports, the game engine has its own type of pacing in built which tries to cap the frame rate in some particular way, this can play havoc with the present call timings and the GPU drivers may need to recognise the game specifically to get a good experience and avoid poor pacing behaviour. The game could use graphics memory to store things between frames, such as trying to copy over the previous image or parts of it for the purpose of blur. Since its resident on one card the next frame is being (a) run in parallel and (b) not in the same memory it is using the wrong data.
It could very well get a lot more complex than that as well, but on a basic level most games work with SLI/crossfire pretty simply out of the box, a few tweaks to some config and its running perfectly. But some engines do very strange things with the GPU to improve performance or implement some effect and especially across multiple frame effects can ruin the effect when the assumption is a single card.