Üblicherweise kann man die logische Bedeutung von Tastern während der setup-Phase ändern.
Wenn man dann einen Taster gedrückt hält während des Einschaltens, läuft ein "anderes Programm" als im Normalfall.
Das wird gern für Testprogramme oder Debug-Versionen verwendet, oder z.B. bei dir eins, was Parameter im eeprom ändert.
Beim nächsten Start werden dann die geänderten Parameter verwendet.
Diese Sonderbehandlung sollte einem Arduino-Benutzer zumutbar sein.
Alternativ geht natürlich ein extra-Button mit der Funktion "Programmauswahl".
( Im Flash sind natürlich immer alle "Programme" vorhanden. )