I remember I have made once a simple test in IE6 and IE7. I have used new Image() to create the object but without displaying it, actually. I have checked the browser's cache (IE Temporary File) but no image was there . maybe IE8 has bypassed this problem... I think I should check that again
Preloaded images are stored locally, but whether it is in the browser's normal cache or elsewhere I don't know. I really don't care where they are stored locally.
In my experience, preloaded images definitely load virtually instaneously when called in some sort of animation (image swap, slideshow etc). With non preloaded images I sometimes notice a delay in the image appearing when called because the browser downloads it from the server rather than get it locally.
I currently support IE8, IE7, FF3.6, OP9, OP10, Safari (for Windows) and Chrome. In all these browsers preloaded images, especially large ones, load very much quicker than non preloaded images in my experience.
I will always preload images that will be used in some kind of animation. Images that are not used in animations, I may or may not preload depending on the circumstances.
Preloading images using the Image object will result in the images being stored locally somewhere. Whether that is in the browser's default cache folder, some other local folder or even in RAM I do not care at all and I don't see why I need to care. For me, there are a lot more important things going on in our world at the moment to care about than where some browser is storing images