Per the LWC docs we have the following:
When a list changes, the framework uses the key to rerender only the item that changed. The key in the template is used for performance optimization and isn’t reflected in the DOM at run time.
Questions related to the above:
Is there any sort of documentation / whitepaper on the LWC implementation of Virtual DOM? That description of key and performance optimization is vague and I feel like there's a lot to unpack under the hood. I figure understanding LWC Virtual DOM could be the right place to start.
If the key is not reflected in the DOM at run time, is they value of the key still being "downloaded" (for back of a letter word) by the client? It sounds like it's being used client-side for performance optimization, but if it's not available in the DOM at all I'm having a hard time envisioning how that works.
I recognize that I don't have to understand everything under the hood to use LWC, but I think that understanding at least some framework details can help drive better implementations in the long haul.