質問を連投されていたのでなんとなくつまずいてそうなことを答えてみると、
そもそも副詞節ifの訳「〜したら」っていうのがめっちゃ未来感あるじゃないですか。
「雨が降ったら」「7時に来たら」「京都にもう一度行かなきゃならなかったら」って、もうその時点でゴリゴリの未来じゃないですか。tomorrow 言ってなくても未来じゃないですか。
※つまり、ifの副詞節を従えてる文は、if節も主節も含めてまるごと「未来のはなし」だと思ってもらっていいです。
で、その上で、「未来のはなしなのに副詞節は現在形だよ!」っていうのがルール、っていうわけです。
で、主節はどうかというと、「未来のはなしだから未来の時制だよ!」っていう超通常運転です。
ここでこの問題のミソになるのが、
【未来の時制には「未来形」と「未来完了形」がある】
という事実。
現在完了形、過去完了形、未来完了形とややこしいですが、〇〇完了形とは、まとめると
その〇〇まで ①どのくらい継続している の用法
その〇〇までに ②何回経験したことがある の用法
その〇〇までに ③完了する の用法
の3つと思えばいいです。この3つのときは完了形なんだな、って思えばいいです。
今回の訳は
「京都にもう一度行かなきゃならなかったら、
私は今年4回そこに(訪れる)ことになる。」
1行目が「未来のことでも現在形」の副詞節、
2行目は※で言ったように「未来のはなし」なので未来の時制なのですが、これ確実に未来完了形の②のやつですよね?
「その未来までに②何回経験したことがある」の用法ですよね?
だから答えは「will have visited」
←will have 過去分詞で未来完了形です!
長くなってしまいすみません!訳分からなかったらスルーしてください!質問あれば聞いてください!
ちなみにonce moreは「もういちど」なので別に未来表現というわけじゃないです!
あと、when節の場合は過去の可能性ありますけど、そのときはシンプルにどっちの節も「過去の時制」にすればいいだけどすよね。
if節が過去形の場合はこの単元じゃなくて全く別の「仮定法」の単元のお話です。