Das funktioniert aber nur, wenn der Pin als Eingang definiert ist.

Mit PORTA |= ~(1<<PA0) setzt du alle Bits außer dem durch PA0 festgelegten in PORTA. Das wird nicht das sein, was du willst. Außerdem gibt es im AVR keine pulldown-Widerstände.

PORTA = PORTA | (1<<PA0)
entspricht exakt dem
PORTA |= (1<<PA0)
Das bedeutet nicht, dass PortA einem anderen PortA ENTSPRICHT, sondern dem PortA ein Wert ZUGEWIESEN bekommt. Beim Berechnen dieses Werts kommt das Zielregister halt auch drin vor.