Agreed, my main project was initially designed without the need for editing software even considered, and then as it progressed, it became obvious that an editor system was vital, because objects referenced other instances of objects, so it's perfectly possible to create a UML system that is, in essence, nothing like the finished product.
It's always a good place to start in my opinion, however, abstracting a whopping create big idea up into lots of little ideas can go a long way towards relieving the burden of trying to think of a program as one huge homogeneous lump, and start the coder thinking about it as lots of 'little' programs all linked together and interacting.
I've not looked at the FS2 source, so I'm not really stating an opinion on it, or on the coders who designed it, and, it should always be borne in mind the FS2 code wasn't designed to be updated as it has done by the SCP, but certainly for larger projects, where several coders may be required to work on or maintain the code for several years to come, engineering is a very important factor, though, in defence, a very large percentage of games software isn't designed to be treated like that, things like the Quake engine are an exception, rather than a rule.