Hola:
Sin duda el código es un poco complejillo, pero estás en lo certo... y es que se borra lo mismo que anteriormente se ha creado:
donde.parentNode.appendChild(capa);
La explicación es que cada línea "destripada" que tiene un botón, tiene el evento click asociado a funciones del tipo verXXXX(this), donde this es el botón (dentro de una capa) y cada función crea un elemento nuevo (hermano menor del propio botón)...
Lo que vamos a ver es como solucionas el problema... no siempre necesitamos como referencia el id, puede ser suficiente el orden de ubicación con respecto al padre... y si quieres borrar todos los hijos se puede usar un bucle while con la condición hasChildNodes()...
function borrar_mis_hijos(yo) {
while (yo.hasChildNodes()) yo.removeChild(yo.firstChild);
}
Saludos