Excellent writeup on the importance of key in React. However, are you sure the diffing is done on the virtual DOM and real DOM? To my understanding, the reconciliation happens between the most recent virtual DOM tree and the previous tree.
Thank you for the correction. You are right, I meant to write that diffing is done between the old and virtual DOM in order to then update the real DOM. Sorry for the confusion.