arr1=arr2; (filling arr1 with the same values as arr2)? No. After that, arr1 and arr2 just hold references to the same array object in memory. So, if you change one, you actually change the data in memory, so the other changes accordingly.
arrayCopy might work, but a double-sized array is just an array of arrays, so you have to make the copy for each array. Ie. you loop on the first dimension, and do an arrayCopy of each entry.
Comparison: yes, you have to use a loop. You know they are different as soon as the first difference is found (or if they don't have the same size!).
About the last question: I guess my first answer answered it as well...
I had this working in another programming language. There it was a call by value.
Thus when returning to the function from a previous higher recursion depth I need the old value to be in my function. This is possible with a call by value, but not with a call by ref as we have here in p5.
So in order to implement my little algorithm, I'd like to ask how I can implement a recursive func with a call by value? Or what are the common work arounds?