Sí, lo correcto es que sea local, pero fijate que luego de remover el objeto del DOM, el tipo de la variable sigue siendo object:
Código PHP:
function pop()
{
i=tag('x').getElementsByTagName('img')[0];//más correcto: var i=...
tag('x').removeChild(i);
alert(typeof i)
tag('x').appendChild(i);
i=null;
c=setTimeout(pop,3000);
}
pop();
</script>