If a DirectLink updates a component containing a Rollover via an ajax updateComponents action, then if there are other rollovers in the page, the order of the PreLoaded images can get changed. The other Rollover images that still reference the old tapestry.preload[i] order and hence display an incorrect image when the mouse rolls over.
This appears to be an issue with the dojo, but I don't know enough to track it down exactly. After the asynchronous component update, the preloaded images gets recalculated, but only the images required by the component being updated appear to be included.
There is a workaround for this quite annoying effect. Create a component that is placed in the border of every page. I call this component
<span jwcid="rolloverLoader@RolloverLoader" />
In this component I include every rollover I intend to use in my site.
Whenever I then update a component in my site, I will also update this component first.
Unfortunately I cannot tell whether or not this is a Dojo error, or a tapestry error. Nonetheless I hope that this helps somebody out trying to work around this issue.