I couldn't find the time to test the new function in the setting at work with big data arrays. Maybe I can test it tomorrow.
What I'm not sure about is why an _ArrayAdd function should split a string parameter and add single parts by default.
If I have a function "Add(a, b )", a user IMHO would intuitively think that "b" is added, and not transformed into other elements which then would be added. That's not intuitive.
I would suggest, that the function behaves the other way around, that is: add the parameter/object unchanged by default, and do something tricky if the user gives additional parameters to do so.