I think this bug was fixed in [r15026] by pure accident. Good that you added a test.
* call_once.c: bugfix change true to (_Bool)1
* src/SDCCast.h,
* device/include/stdlib.h: bugfix once_flag, cannot use bool & false
* src/ds390/main.c (port): unqualified pointer cannot point to __sfr
* src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
Apart from interrupt latency, interrupt duration is often also important. And so is code size. And the chance of being inside the critical sections is not high I expect, if the atomic functions are used at all. I just feel that the price is too high.
* snap.php: fixed regex for parsing Summary lines