Credo che quando si traccia un array come descritto nell’OP, si stia tracciando il riferimento all’array e non le modifiche ai singoli oggetti al suo interno.
Un altro modo per gestirlo è usare trackedObject, lo usiamo in diversi punti di Discourse.
trackedObject