Don't worry, few people realize how much BSS suck. Getting rid of BSS is one of the optimizations I performed most often on other authors' programs, so BSS removal ended up being more clearly featured in my TICT S1P9 optimization tutorial
Usually, when code doesn't work with optimization turned on, it's a bug, so you were right to fix DrawSelectScreen.
Inlining the functions saved a bit of space, but much less than compiling with -Os + getting rid of BSS, so yeah, it's not that important to do so.
I produced no less than two releases of TI-Chess where I had left in an asm("0: bra.s 0b") infinite debugging loop, forgetting to restore collision detection is less of a problem than that
Did you switch to GCC4TI for building ? GCC4TI's SAVE_SCREEN support is 16 bytes smaller.
Oh, and for adding 92+/V200 support, you should use fully separate builds. Compatible builds with optimized calc consts are usually a disaster for optimization, too.