sinceは前置詞であれ、接続詞であれ、基本用法は「起点」です。動作や状態の、時間軸における始まりとなるところを示します。
この文では、be good friends(親友である状態)の起点を[since…met…](会った時から)と過去時制で表したわけです。
で、時間においての起点ということは、話は時間の流れに沿うことになるので、過去から現在の方向に向かうのです。主節近辺に時を示す語句が特に何も使われていなければ通常は現在までのことを表わしています。なので過去から現在までの状態を示しているのでhave beenが適切、という解答になるわけです。
このhave been good friendsを最初に質問されたように「仲の良い友達だった」という日本語に訳しても、あきらかに間違いであると指摘されることは少ないのかと思われます。それは日本語の特性によるものと考えられます。
ここからは余計なおせっかいと知りつつも1点だけアドバイスを。英文法の問題、特に時制が問われている問題は、日本語訳を解答の根拠にしても正解にならない場合が多いです。日本語と英語はそれぞれ依拠しているルールが違うわけですから、日本語訳で英語の問題を解くのは相当に危険です。
実力アップの参考になれば幸いです。


端的にまとめてしまうと、
現在完了 since 過去形
過去完了 until 過去形
sinceは起点、untilは終点
こんな風に私はまとめています。