A-GPS is able to reduce the fd search range from several kHz (GPS search range) to several hundred Hz (a-GPS search range). I know the GPS search range has a center at 0 Hz. What is the center frequency with the reduced A-GPS search range? I got an impression that this A-GPS frequency search center shouldn't be located at 0 Hz. Instead, it should be the assumed initial fd value.
A-GPS will give you ephemeris data. That will be used to update your initial guess for the frequency of the downlink signal, indeed. The relevant remaining uncertainty is in the local oscillator of the GPS receiver itself. And that can be large compared to Dopplers!
So, yes, assuming the frequency probability density to be symmetrical convex around the nominal frequency, that would put an ML estimator at the doppler frequency.
But: your GPS receiver typically doesn't run the first time. It already has acquired estimates about its own frequency error in the past, and together with parameters like current temperature and the time that has passed since the last successful fix, your initial frequency error estimate doesn't have to be 0; for example, if I remember correctly (it's really a bit of a fuzzy memory, please check the source code) RTKlib uses an extended Kalman predictor for such purposes.
Also, the highest likelihood estimate for an initial frequency error is not necessarily one that makes for the best starting point in a search algorithm!
For example: Due to the ambiguities in multiples of (chip rate)/(chip sequence length), it might be cleverer to first test a frequency hypothesis that's intentionally a bit off, because it can give a drastically improved expected convergence rate when looking for a frequency error optimum – in the end, this is a relatively complex optimization problem that's not globally convex.