One last try:
The reason you're getting what you perceive to be attitude is your insistence on continuing to assert something that every respondent in the thread knows to be false.
It's not people being limited by what they were taught, it's a bunch of folks who know very well how the C language works - IIRC, I was coding in it professionally in 1985. Arrays in C are very rudimentary and they most certainly don't dynamically expand if you access elements outside their bounds. Come to that, they don't do bounds checking either, so you can write stuff such as your code example that compiles but will be a disaster when it runs. The compiler doesn't care that you wrote on memory outside the array - it trusts you to know what you're doing. Take a look at a C tutorial - you'll find no mention of the mechanism you suggest exists - you've simply confused it with another language.
Try declaring some character arrays with "Hello world" or the like either side of your zero length array. Print them at the start of your sketch, run your array filling code above, print them again. If you reduce the range of your random numbers a bit, you will find that what you thought would expand the zero length array actually stamped all over one of your "Hello world" messages.
C is powerful, but it hands you a loaded gun and expects you to know how to use it. Bad things will happen if you don't.