The library used has nothing to do with the problem, since it’s the bootloader that handles uploads and the bootloader doesn’t change regardless of the library used.
The problem that using flashlight mode solves has to do with the amount of RAM the sketch uses and how the variables in RAM end up being mapped. In most cases it’s the resulting location of the screen buffer that causes the problem.
Maybe you are right but in my experience for some reason when the code uses an old “inline” version of the library, or a custom one, or if the boot animation was disabled is harder to upload something without using the flashlight.
That’s just how the RAM happened to end up being mapped with those libraries. It’s possible that the using the Arduboy2 library could cause the problem with a given sketch when switching to another library doesn’t.
It all has to do with what variable, if any, gets mapped at the bootloader “magic key” RAM location of 0x800. If that variable is written rapidly when the sketch is running, then an upload can fail if attempted during that time. Using flashlight mode just stops any RAM variables from being written, so the “magic key” doesn’t get corrupted.