Nein,
wenn Du PORTx = 0 schreibst, wird nur der Pullup abgeschaltet, wie es im Datenblatt auch steht. Um den Port von Eingang auf Ausgang zu schalten müsste das Datenrichtungsregister beschrieben werden.

IOPortX als Ausgang: DDRx = 0xff
IOPortX als Eingang ohne Pullups: DDRx = 0x00; PORTx = 0x00;
IOPortX als Eingang mit Pullups: DDRx = 0x00; PORTx = 0xff;

IOPortX als Ausgang schreiben: PORTx = value;
IOPortX als Ausgang lesen: value = PINx;
IOPortX als Eingang lesen: value = PINx;

Beim Lesen ist egal, ob der IOPort als Ausgang oder Eingang definiert ist. Es wird immer über das PINx Register gelesen.