1. If X is happening, Y should have happened by now.
To my mind, the "if" in this structure expresses "accepting that", while the "should have" is epistemic, and expresses "less certainty" than the "has" in this version:
2. If X is happening, Y has happened.
If the speaker doesn't expect to witness Y, the structure is unremarkable:
3. If John is sitting in Reception, Bill should have noticed him by now.
(The speaker doesn't know if Bill has noticed John.)
In the original sentence, however, Y (the storm) would have happened "here", and the speaker would have witnessed it. So instead of speculation, the sentence seems to me to express "puzzlement":
4. If the storm is moving as quickly as the meteorologists say, it should have been here by now. [But it isn't here. Now why would that be? Are the meteorologists incompetent? Has the wingbeat of a giant roc interfered with the pressure distribution? Or did I just get my sums wrong?]
In the "type II conditional" version, on the other hand, the "if" expresses "supposing that", and the sentence as a whole seems to express "doubt in what the meterologists say":
5. If the storm were moving as quickly as the meteorologists say, it should/would have been here by now. [But it isn't here. So it can't be moving as quickly as the meteorologists say.]
___
Interpretations of if-statements do vary, though.
MrP