◆ 親の URL を使って新しいタブで開かれたときにもページバックできる
  ◆ → 元タブが閉じられてたら opener にアクセスできないから無理(閉じてないなら戻る意味ないし)
◆ window ありの Worker 代わり
  ◆ → 片方で長時間同期処理してると両方とも固まる

そういえば opener を全然使ってないなぁと思って使い道ないかなと考えてみました

ページバック

ページバックは基本ブラウザの戻るボタンを使えばいいと思います
ただページの中に入れたいときもあって JavaScript でできるバックを作ってみました

function pageBack() {
if (history.length > 1) history.back()
else if (opener) {
try {
location.href = opener.location.href
} catch (err) {
alert("cannot back by crossorigin restriction")
}
}
else alert("cannot back")
}

基本はブラウザの戻るボタンを押したのと同じ history.back() を呼び出します
戻れないときは target=_blank" の a タグや window.open() で新しいタブで開かれたときなので opener があればそこに戻ります

noopener オプション付きで新しいタブで開かれたり ウェブページから開かれたページじゃない場合は戻りようがないのでなにもしません
一応 alert で戻れませんと通知します

opener があっても crossorigin だと開いた元の URL を取得できないのでその場合もエラーを alert で通知します

DEMO

ダメだった

通常のブラウザバックとは違って opener に戻れるのがいいところ だと思ってました
新しいタブでリンクを開いたら元のタブは閉じてることがあります
そのときに閉じたタブの復元をしなくても 戻るボタンで戻れるのはちょっと楽になります
そう思ってました……

閉じてたらもうその window は無いんですよね!
opener は URL を保持しているわけじゃなくて window オブジェクトへの参照です
閉じられてたらもうアクセスできません

開いたタイミングで opener.location.href を退避しておけばできますが それならもう document.referrer でいい気がします
opener を有効利用できる使いみちがあったと思ったのに使えませんでした

Worker

重い処理をするための Worker 機能がありますが Worker にウィンドウはありません
Worker 側に画面があって表示できるのは場合によっては使えるかなと思って opener 機能を Worker 代わりにすることをひらめきました

window.open で開かれたウィンドウが Worker 代わりです
相互通信するための仕組みに opener を使います
親→子は window.open の返り値の window オブジェクトを使って操作します
子→親に window.opener の window オブジェクトを使います

早速試してみたのですが 同じプロセスになるので重い処理をすると両方固まりました
UI 処理のスレッドも一緒みたいです

親→子の一方向にアクセスなら色々使いどころがあるのですが 双方向ってあまり使いません
それが重い処理を非同期でできる Worker だったのですがそれにも使えませんでした

どこで使えるんでしょうね

親の URL を書き換える悪質広告以外に利用価値が思いつかないです