I have been working on a WP7 app, it\'s image gallery app, with basic zooming and flick gestures implemented.
For test purposes I compiled the app with offline image
After many trial runs and debugging sessions I found that this caching of images is not performed (or not performed as aggressively) when images are residing in the app's IsolatedStorage.
Thing is I was using the images which were a part of the xap file, included as content. I did this because I just wanted to test my image viewer. But this would not be the case when my app would finish. App was really designed to store images in Isolated storage and display them.
So I setup the necessary code and voila, Images are now getting garbage collected, even though they still got cached. See image below(see how many times Garbage Collector gets called). This is a solution to a not so trivial question, that's why no one else faced problem of this kind.
I believe that when WP7 silverlight finds that images is not from Isolated storage it assumes image is from some remote URI and decides to cache it anyway. And that's where silverlight image caching problem kicks in. As another answer confirms this doesn't happens in WP8.