The trick is to place your a/b testing JavaScript right after the relevant DOM elements, and not do a/b testing on DOMReady or window.load. That'll ensure there's no flickering.
I'm just hoping someone comes up with perfect way I can just put a script in the head and not worry about flickering. So I don't have to hide the body with CSS and make it visible when the script finishes. Optimizely seems to be getting there, but it's not perfect. (And kind of awkward, why can't browsers provide a better way to target elements as they come into existence?)
Do you do continuous checking of the DOM like Optimizely? Diagram: http://support.optimizely.com/customer/portal/articles/45288...