I think it is technically passing the array by reference, in the sense that it isn’t making a copy. But it is a const reference, so not something you can modify.
The thing is, I remember that Event Dispatchers (which have the same limitations) would display a clear yellow warning when you try doing this. I don’t know why custom events don’t do the same.