This practice of narrowing the problem statement, so the results are in an acceptable form, is practiced by many sciences and allows them to move forward. The precision of traditional computer science has a drawback, however. The problems that are solved are those that are amenable to precise solutions. These problems are, by definition, tightly defined, with no mushy statements or an unacceptably high number of variables. In short, these problems are easier than real-world problems that aren't conveniently narrowed.
Software engineering happens to be just such a real-world problem.
Meteorology concerns the complex interactions of many simple phenomena. Meteorologists now can make reasonably accurate predictions a few days into the future. Forecasts beyond that are shaky. This is the case even though the individual forces that create the weather can be calculated accurately by college freshmen in Physics 101. Software engineering is similar.