...let me add to that, that the dynamic images that are generated on the fly are actually constructed from the tile cache, and not from the original data. This allows you to still get some performance from the cache, but request any extent in any projection. If you want your data to be truly dynamic (ie if your data changes often, or scale dependencies needs to be properly respected), don't cache the service.