| 
		
			Сообщение от рони
			
		
	 | 
	
		while (elem.firstChild) { 
   elem.firstChild.remove() 
}
	 | 
	
elem.innerHTML = '';
Ничуть не хуже.
	
	| 
		
			Сообщение от Was-Ja
			
		
	 | 
	| 
		есть ли какой-то простой способ гарантированно удалить все ресурсы, которые были аллоцированы в предыдущей версии того, что было в innerHTML?
	 | 
	
Гарантированного способа нет.
<div id=clear>
 bla-bla-bla
<div id=noremove>bla-bla-bla</div>
 bla-bla-bla
</div>
let dc=document.getElementById('clear');
let dnr =document.getElementById('noremove');
dc.innerHTML = '';
div clear - очистится, но div noremove продолжит свое существование вместе с занятыми ресурсами в памяти, пока переменная dnr (или какая то другая) ссылается на него. Его даже можно вставить куда то.
Далее
function f () {....}
let bf = f.bind(dnr);
Пока существует переменная bf и ссылается на функцию, div noremove не будет удален из памяти