Newer boards (Due, MKR WiFi 1010, GIGA R1 WiFi etc.) automatically use the program space when a variable is declared as a const.
As far as I know, program space is not writable at runtime. However, const variables can be initialized at runtime. Is there a contradiction?
A more plausible possibility is that only constexpr is guaranteed to be placed in program space, leaving the other variables to the compiler to decide whether to optimize them into program space.
Language/Variables/Utilities/PROGMEM.adoc says:
As far as I know, program space is not writable at runtime. However, const variables can be initialized at runtime. Is there a contradiction?
A more plausible possibility is that only constexpr is guaranteed to be placed in program space, leaving the other variables to the compiler to decide whether to optimize them into program space.