I actually have a background in Meteorology, so I feel safe to address this.
The reason our short-term forecasts have a variance in precision is very straightforward. It's almost entirely because of cities. Even massive cities are relatively tiny areas of land. Getting a forecast to be exactly right within a tiny area is insanely difficult because it's not just about forecasting that conditions are right for rainfall, it's getting the rain border within a few square miles of land. That requires an immense amount of data. It is very difficult to acquire immense amounts of data for short-term forecasts, as the situation is constantly changing.
To put this into programming terms, you're comparing the following scenarios:
1) Predict how long it will take to debug a program that is acting completely screwy. Predict what bugs will happen and how long they will take to resolve.
That's pretty difficult to give any certainty to. Versus:
2) Give me an estimate for how long it would take to build a specialized system for, say, hospital equipment in SQL.
The second task is DECIDEDLY more complex and involves many more moving parts, but you could probably give a reasonable estimate of conclusion, versus trying to give a micro-managed level of precision to a specific set of variables that are often changing on the fly (99 little bugs in the code, 99 little bugs).
Notice I used the word precision. The problem is that you're looking for two different levels of measurement, thinking they are direct correlations. We can collect massive amounts of long-term weather shifts, far more than we can for, say, what it's going to be like in Austin on Sunday at 8pm. Yes, we have terabytes more data these days than we did 20 years ago, but it still pales in comparison to how much our climate models are absorbing and responsible for.