gd0 is not zero for Vds=0 if Vgs>Vth and it is defined by dVds/dId when Vgs>Vth. Because already the channel has been created. And when there is no current through a resistor, it does not mean that the value of resistor is zero. Also, For sure there is a vertical electric field due to Vgs in the channel.
When Vds is zero, the transistor is in deep triode and gdo=unCox(W/L)(Vgs-Vth).