Eu acredito que o PROGMEM é usado para armazenar grandes dados (por exemplo, strings) que não mudam. Portanto, ele libera a SRAM.
na Referência Ardunio é mencionado que.
"Usar o PROGMEM também é um procedimento de duas etapas. Depois de colocar os dados na memória Flash, requer métodos especiais (funções), também definidos na biblioteca pgmspace.h, para ler os dados da memória do programa de volta para a SRAM, para que possamos fazer algo útil com eles. "
Se eu tiver que carregar o dados em SRAM antes de usá-los, então como é eficiente do que diretamente stroing em SRAM definindo normalmente vaiable