I actually think about this every once in a while, theorycrafting what the best and/or easiest implementation would be.
It seems that XNA has some black magic going on under the hood when it comes to caching, and I'm not 100 % sure how to control it. The main thing is that it seems that, for a texture to truly be loaded, it needs to have been rendered at least once. It can be loaded into RAM, but still create a little stutter the first time it actually gets rendered on screen. Perhaps it's moved to VRAM at that point and stays there until it's disposed.
If it's actually that simple, then the full-preload would be relatively simply to pull off, I think. I might use some of my "spare time" to prototype some kind of asset crawler that just wades through all the game's texture files, loads them into memory
and renders them.
I'm rambling again
TL;DR: I agree! I want to add this in for speedrunners at some point - hopefully not in a too distant future (I imagine a forced 'practice run' gets more and more tedious the longer the game gets!)