Ho тем не менее проблемы утечки памяти тут все равно остаются.
Открытое окно делает
window.opener.closeChildWindow(result);
result - объект. Но это объект из окружения этого окна. Он имеет ссылки на другие объекты этого окружения. Хотя бы на Object из этого окружения.
И пока ссылки на него или его части будут существовать в главном окне, все это окружение (или его значительная часть) будет оставаться в памяти.
Тут все зависит от того, какая работа ведется в главном окне. Можно ли корректно скопировать все в своем окружении и очистить эти ссылки.
Если result содержит поля только примитивных типов, или другие объекты с полями примитивных типов, то можно сделать
window.closeChildWindow = function (result)
{
result = JSON.parse(JSON.stringify(result))
......
}