Allerdings ist die von Dir vorgeschlagene CSS-Lösung nicht unbedingt einfacher und das Nachladen der Bilder geht auch nicht schneller als beim JavaScript, sondern langsamer. Insofern halte ich die JavaScript-Lösung für besser.
das "nachladen" der bilder ist mit der richtigen technik kein argument http://www.wellstyled.com/css-nopreload-rollovers.html
und es geht mitnichten langsamer - die javascript variante ist theoretisch sogar langsamer - die bilder sind die selben, exakt gleich gross - kein unterschied in der ladezeit - mit der ausnahme, dass ich 2 (oder mehr) bilder in ein file packe und somit die anzahl der http-anfragen verringere (das ist das größte performanceproblem) ein css file welches ich anfragen muss hab ich sowieso, ein javascript-file nicht unbedingt - also wieder ein request mehr
javascript hat zudem den entscheidenden nachteil, dass es ohne javascript nicht (also überhaupt nicht) funktioniert - die css lösung funktioniert hingegen auch mit deaktivierten javascript und auch ohne css
die javascript variante verändert das src-attribut des verlinkten bildes und manipuliert das css (display none/block) - im endeffekt muss man 2 techniken dafür nutzen (also sowieso wieder css), obwohls mit css alleine auch funktioniert
versteh mich nicht falsch, javascript ist eine feine sache - aber für rollover-effekte ist javascript sicher nicht sinnvoll, wenns mit css alleine wunderbar funktioniert