Hi Steven,
Cached services should be used for relatively static data, i.e. aerial photography. A cached service does not allow for you to turn off the individual layers. If your mains, hydrants, and valves are not updated frequently you could create a cache of each individual layer. You can then toggle off the individual cache service.
Another way to have a quick, response, smooth user experience is to enable scale dependencies on the layers. When you create a dynamic service, these will be honored and the features will not draw until you zoomed into a large scale.
If you need to see the layers zoomed out at smaller scales, you could also have a mix. For example, create a cache service of the three layers to a certain scale (i.e. 1:36,000). Then create a dynamic service that draws when zoomed in pass the 1:36,000 scale.