Aha, so langsam kommen die Infos zusammen. Darum gehts also =)

Naja, sagen wir mal so: Warum muss ein Interrupt stattfinden, wenn wir das in dem Moment gar nicht brauchen? Wenn der Interrupt standardmäßig aktiviert ist, er aber nicht gebraucht wird, dann könnte er beispielsweise Lowlevel-Operationen unterbrechen, wenn diese nicht durch cli() und sei() geschützt sind. Im Prinzip geht es sicher, dass der Interrupt von Anfang an aktiv ist, unabhängig davon, ob er nun gebraucht wird oder nicht.

Es ist dann eben nur mehr Vorsicht geboten bei Operationen, die nicht durch einen Interrupt unterbrochen werden dürfen. Und da sich der ASURO maßgeblich an Einsteiger richtet, ist es sinnvoller, wenn diese Vorsicht gar nicht erst nötig ist. Von daher ist es in der Lib ganz gut so.

Aber Achtung: Ich experimentiere auch grade damit rum und versuche die Messung der Taster innerhalb der ISR zu machen. Allerdings wird dabei der Interrupt-pin auf Low gezogen und dadurch wird ein weiterer Interrupt ausgelöst, der nach abschluss der ISR aufgerufen wird und dann wieder einen Interrupt auslöst.
Soll Heißen, dass jede Messung, während die ISR aktiv ist, nach dieser Art und Weise jeweils einen Interrupt triggern würde obwohl gar kein Taster gedrückt wurde. Von daher würde ich das doch lieber manuell reaktivieren.
Oder eben bei der PollSwitch() am Beginn den Interrupt deaktivieren und am Ende wieder Einschalten. So hab ich's versucht, aber es geht nicht. Siehe dazu hier

Bääääär