Acredito que, ao rastrear um array como descrito no OP, você está rastreando a referência do array e não as alterações nos objetos individuais dentro dele.
Outra maneira de lidar com isso é usar trackedObject. Usamos isso em alguns lugares no Discourse.