Hi Sampsa,
This seems to be by design, and not a bug. This is a snippet of the javascript code generated by the platform for a Client Action that receives a List as an input parameter and adds some elements to it:
As you can see, a local clone of the input parameter is created and it is this clone that is manipulated. As a result, the original list that you passed into the action will remain unchanged.