The subjunctive is not only for that cases. I'd say it is for "everything that is not a fact".
But this is not any unreal/imaginary situation. It is just a conditional sentence, and the structure is exactly the same in English.
"Si , entonces "
"If , then ".
Like, for example,
"Si estás cerca, vamos" = "If you are near (near here), we're going".
Check that it's the same in English. I guess it's due that it's talking about facts, and the best way to see it is reversing the sentence order. Look:
"Vamos si estas cerca". As you can see, reversing a conditional sentence makes explicit that you're talking about a fact. You will indeed actually go if that happens, and so it is a fact and not any unreal thing.
On the other hand, this kind of sentence can be changed so that it is not a fact but a possibility. In that case, subjunctive is needed.