I just spent quite a long time tracking down an error where I was writing
array[i] = someValue; for a JUCE array.
Of course, this code silently fails to do anything useful.
But it’s far too late to change now, and it’s no big deal writing a little more code except that this encourages you to write code that looks completely correct but is in fact completely wrong (and that you can look at many times and not realize is wrong).
Could juce::Array not be changed so that operator returns a const ElementType? Heck, I learned that trick from reading JUCE code!