function unprotectVTree(vTree) {
  if (vTree.childNodes.length) {
    for (let i = 0; i < vTree.childNodes.length; i++) {
      unprotectVTree(vTree.childNodes[i]);
    }
  }

  NodeCache.delete(vTree);
  unprotect(vTree);
}
Recycles a VTree by unprotecting itself, removing its DOM Node reference,
and recursively unprotecting all nested children. Resets the VTree
attributes and childNode properties as these can contribute to unwanted
increases in the heap.

@param {import('./types').VTree} vTree
@return {void}