Well, to be fair, it's not really a "problem" in C/C++ because pointers are arrays and arrays are pointers. That's why you can say 5[array] instead of array[5], if you want to be weird about it. The subscript operator is just a bit of convenient syntactic sugar. (And, for size information, you should also really never use sizeof() on an array. It's the closest to undefined behaviour you can get without actually being undefined behaviour. Personally, I don't think it should even be allowed, but there are legacy reasons for keeping it around, and frankly most compiler vendors would probably keep it as undefined behaviour even if the standard was changed.)
Good to know about that offset shortcut in gm-editor, though. I've seen it in the help page, but there was nothing that indicated what that was supposed to do, and I haven't come across a bare array anywhere else in any of the data structures dfhack exposes, so I haven't had an opportunity to experiment with it. Maybe adding a little note to the help page to clarify that it's for indexing bare arrays would be useful?
But, just out of curiosity, has it been determined that that particular variable is actually a bare array? Is it possible that that's a vector and nobody's noticed yet? I mean, everywhere else that I've seen, vectors are used, even in places where you could legitimately get away with even a statically-sized array, like the unit attributes and personality traits.