Reloading all media would be a pain in the arse
It actually isn't. If you have a LoadAssets() and a FreeAssets() function, simply call FreeAssets(), change the resolution, then LoadAssets().You'll need to implement a 'flag' on your options screen which is usually 'false' but changes to 'true' if you select a different resolution/depth/whatever. That way you know you're going to have to change the resolution and reload everything when the user clicks "ok".
Its pretty simple really. Just needs a bit of thought.