いわゆるtough構文 というやつです。
次の2つの文を比較してみてください。
①The safe was impossible to open.
②It was impossible to open the safe.
形式主語it〜とto不定詞の構文で
to 不定詞の部分の目的語を、文の主語の部分に持ってくる形を取れる場合があります。
(他動詞の目的語・もしくは前置詞の目的語)
わかりやすく言えば書き換えのようなものなのですが、細かく言えば完全な書き換えではありませんね。
①は「その金庫は」・②は「その金庫を開けることは」と主語が違いますから、
要はこの文の主題が違うわけですからね。
①の形について
行為の難易を表す形容詞 がこの形を取れます。
easy・difficult・toughが典型です。
代表格のtoughという形容詞から
tough(タフ)構文といいます。
一般的に、形容詞によって決まる文の形は
①It 〜 to 不定詞
②tough構文
③It 〜 that節
がありますが
②を取れるものは①も取れます
③を取れるものは①も取れます
でも
②を取れるものは③は取れないです
だから例えばIt is difficult that〜とは言えないです。
ただし例外的なものがあってimpossibleは以下のように覚えておくと良いでしょう。
possibleは①と③を取れます。
だから②は取れません。
これは上に書いた一般論からすると普通のことですね。
impossibleは①と③を取れるのに
②が取れちゃうんですね。
だからimpossibleという単語は特殊なのです。
ちなみに質問者さんの「腑に落ちない」を言語化してみますと
The safe was impossible to open.
to不定詞だからこのopenは動詞ですね。
to不定詞の意味上の主語(誰がopenするのか)はfor〜が書かれていなければ文の主語に一致します。
だからこの文は
the safe がopenする
と言ってることになって、おかしい。
the safeはopenされる だから to be opened だ
ということですよね。
ところがimpossibleは「不可能だ」「〜できない」という意味です。
the safeがopen されることができない
間違ってなさそうに見えますが、これは日本語の字面で考えるからです。
実際には金庫は自ら積極的に開けられようとしているわけではありません。置いてあるだけです。
それを開けようとしている人がいて
そしてその人が開けることができない
と言いたいので
impossible は(for us) to open を後ろに従えないと
変な感じがするわけです。
補ったfor usは人間一般 を指していると考えてください。
こういう場合はあえて意味上の主語として書く必要はありません。