Karolina, If you do have them added as basemaps then only one is really loaded at start-up. You can verify this by using a utility like fiddler or charles and see the http requests that are made but take my word for it. Also the Viewer has a UI widget called the MapSwitcher that controls the toggling of basemaps (meaning only one visible at a time, unless you group base maps with the same exact label), and a more button that acts as a TOC and allows you to switch on and off operational layers. There is also another OTB widget called the LayerListWidget that is TOC type widget with out the legend portion. In the code gallery there is my TOC widget which is more like the ArcMap TOC with legend swatches and check boxes for layers and menus to interact with individual layers. So if you set the visibility of all you layers but one to false (as it should be for basemaps anyway) then you can use any of the three widgets I mentioned to turn on other layer only when the end user needs them. If all of your layer cached then they are more than likely cached at the same levels and the same spatial reference so re-projection on the fly by the server is not the issue. In the actual administration of your ArcGIS Server there are a couple of things you can do to speed up your Map Services like adding more instances of the service at start-up instead of the default 1 instance and max of 2. There is a good white paper you can search for on the esri support site about ArcGIS Server administration and Map Service optimization.Don't forget to click the Mark as answer check on this post and to click the top arrow (promote).Follow the steps as shown in the below graphic: