Variablen liegen entweder in den Registern, oder im SRAM oder im EEPROM oder sind Konstanten, die bei der Kompilierung vom Compiler vor dem flashen verarbeitet werden.
Im Flash liegen die beim AVR nicht.
SPM geht beim AVR nur im Bootloader. Im Programmflash geht das normalerweise nicht. Macht auch nur in Einzelfällen Sinn.

Wenn du in C Progmem verwendest werden die Daten im Flash abgelegt, sind aber Konstanten und dementsprechend unveränderlich.