A Harvard architecture means separate data and code memory buses (and address spaces, at least in the AVR.)
It does NOT require that the code memory NOT be RAM, or not be modifiable at runtime.
It does happen to be the case for AVR.
It was/is common for 8051-based systems to map data memory and code memory to the same external RAM, for example.