I currently use ArcGISDynamicMapServiceLayer in a map with multiple layers of the same data symbolized differently based on scale. I use layerDefinitions to set all the definition queries as a user filters the map. The performance problem comes when trying to zoom to the selection with polygons since I have to use a queryTask, get the geometries back, and get the extent. This is done on data published from our own ArcGIS Servers.
It would be very nice to use the QueryTask.ExecuteForExtent method so I don't have to get back all the features and their geometries, but this is only available to hosted feature services at 3.9. Is there a technical challenge that makes it not possible to implement for non-hosted services?