Release an attached Range object from a node

I noticed a strange bug (or a shortcoming) of the JavaScript Range API. Once attached, the range object cannot be released manually in any way. There is a detach() method, but according to the docs it does nothing and is left for compatibility.

The issue becomes apparent when you try attaching large quantities of ranges to nodes (easily observable on 10000+ nodes). Subsequent removals of any node from the DOM suffer from more than 50% increases of processing times for removal methods, such as setting innerHTML, using removeChild(),replaceChildren() etc.

With no way to release the range objects, is there any way to remedy this slow down of node removal? Or am I better suited opening an issue report for Chromium and Firefox?

// Create test nodes
let html = "";
for (let i = 0; i < 50000; i++) {
  html += "<p>Test paragraph</p>";
}

document.body.innerHTML += html;

// Attach ranges
for (const paragraph of document.querySelectorAll("p")) {
  let range = new Range();
  range.setStart(paragraph.childNodes[0], 0);
  range.setEnd(paragraph.childNodes[0], 2);
}

// Log the performance result of trying to delete nodes after attaching a range

document.querySelector("button").onclick = () => {
  console.log("beginning delete...");
  console.time("perftest");
  document.body.innerHTML = "";
  console.timeEnd("perftest");
};
<button>Click me to delete</button>