I'm curious; what's the advantage of copybuffer over direct array requests?

 
So I'm used to accessing an array values directly; and so it made perfect sense to me in MQL4.
It was driving me nuts trying to figure out how to do it MQl5 so I gave up and asked the 'evil AI' what's going on and it's solution was Copybuffer;

In MQL5, you can still work with arrays directly, but the way you access indicator data has changed compared to MQL4. In MQL5, indicators work with handles, and you need to use functions like CopyBuffer to retrieve data from an indicator's buffer into an array that you can work with.
MQL4 vs MQL5 Approach:

    MQL4: You could directly access the indicator buffers like iMA(NULL, 0, 14, 0, MODE_SMA, PRICE_CLOSE, i) and get the value for a specific candle (i).

    MQL5: You must create an indicator handle and use CopyBuffer to copy the values from the indicator's buffer into an array.

Example of Direct Array Access in MQL5:

If you have calculated values stored in an array directly, you can still access and manipulate them without CopyBuffer. However, when working with built-in or custom indicators, CopyBuffer is necessary to retrieve the values into your own arrays.
is this the new, standardized way of working with arrays now?
what is the advantage of this apparently more long-winded approach to doing something that used to be intuitive?

Am I missing something?
 
hotmatrixx: So I'm used to accessing an array values directly; and so it made perfect sense to me in MQL4.

Your post makes no sense. Even in MQL4 you can not access arrays of some other indicator, you use iCustom. In MT5, you get a handle and read them.