DirectionsService does not change the scale, and DirectionsDisplay (AKA DirectionsRenderer) does this.
The DirectionsRenderer has a preserveViewport option, which, if enabled and set to true, will not allow you to change the scale (and center) of the map.
If you want to set up a center based on the results of directionsService, see My answer to this similar question:
google map zoom after driving
If you want to set a center that would set a DirectionsRenderer, use the boundaries of the DirectionsResult.
You can also listen to the directions_changed event and set the scale when it fires, without knowing if it will work or not.
example from the documentation using the zoom_changed event
source share