Definitely not required, but the compiler is general purpose and pretty conservative right now (I try and get it correct and then optimize) and uses a 16 bit temporary there to avoid guessing wrong when signed and unsigned values mix as it doesn't always fit when doing the math. You were + / - 1 so that's a specific case that should be optimized later in the pipeline, I will work on that.
I like your idea of INC(#) / DEC(#) for "in place" updates. And yup, I agree, the --/++ is a C thing, not BASIC. :)
Expression based CONSTs are supported but TILE_COLUMNS was a no arg accessor PROC. I've updated it (and some others) to be read-only scalars so you can use the initializer you mentioned (and a compiler error will happen when attempting to use a PROC in a const expr initializer).