Io questa cosa l'ho risolto in questo modo (uso pseudo codice)

il popup, quando deve fare una operazione sulla madre, fa una specie di callback:

se(chiamante && chiamante.funzione) {chiamante.funzione(parametri);}

chiamante è una variabile che restituisce il chiamante, tipicamente l'opener.

Senza andare nei dettagli, la cosa mi funziona e ne sono contento, da cui presumo, che la filosofia sia giusta.