Just searched for this discussion as I’ve just come across a few things.
I’m working on my dual switch firmware that has multiple UIs and other stuff, and use a few noinit variables extensively. I’ve just spent the last three hours re-writing code to weed out bugs, but they just wouldn’t go away, like loosing E-switch, strange UI changes and so on. I’d only get these bugs if I was rapidly switching modes with off button, and as I have E-switch, off time cap and voltage monitoring on the same pin I naturally thought the bugs where related to this setup.
Then I remembered that I’d turned off the brownout detection fuses, so I turned them back on… and all bugs vanished. Notice that I did not get the bugs under normal operation, noinit variables where working fine, it was only when I started to stress test the mode changing a little that I started to get really weird behavior. So, depending on what you are doing, the brownout fuses can make a difference. Just thought I’d give you some heads up, because I was tearing my hair out until I figured this out.