I think it's not just "out of bounds" issue. Also after "clear" - the empty array contents are zeros, I think?
Why is -1 better than 0? Why is 0 error prone?
For me, because all indexing starts at 0: for arrays, string tokens, etc. Therefore, when I include "0" into the array, I don't know whether "0" means element Index 0, or "this slot is not yet assigned". I recently used arrays heavily for randomizing e.g. animation frames, and so I start my random lists at "1", and then I'm forced to deduct 1 later in code. Maybe I'm doing this wrong, but for me it's a bit more messy this way.
"-1" would be much better, imho :-)
Anyway thanks for investigating, maybe this will result in some changes in future versions?