At some point you need to start from scratch though. I'm currently (along with a big team obviously) in the process of building a business bank from scratch because it's simply not feasible anymore to keep working on the old legacy code. It's just not possible to upgrade it. Too many years have passed and the technology in use is too old. That goes for all legacy code. At some point it's basically a massive, outdated behemoth where every fix takes days instead of hours.
As for what's missing? Just play The Witcher 3. Fallout 4 was released about six months after The Witcher 3, yet it was years behind it in terms of technology. No amount of modding will fix the fractured world, the lacking facial animations or the broken physics.
Again I get what you're saying, but a lot of it is still just an experienced guess when it comes to game engines. I also work for an enterprise company, and we have an entire team of developers that do nothing but fix and re-write in-house enterprise accounting software programs full time. If you're still using an old Foxpro database, eventually you're going to want to migrate that to an SQL backbone. Foxpro was fine back in the day for a light or Shell OS like DOS or Win 3.1, but when pre-emptive multitasking OSes became the stable ones of choice, then it was time for a re-write. When saying the legacy code becomes a massive outdated behemoth, it's an oversimplification of the facts. What's really happening with old code, is it's designed to work with an old operation system. So when just updating the legacy code, you're essentially designing your own integrated emulator. You're designing a way for the old code to talk to the new OS and its core applications. The old program iterations probably went something like this:
1) Foxpro DB > Single Task OS Program (DOS)
2) Foxpro DB > Single Task OS Program > GUI Shell (Win 3.1)
3) Foxpro DB > Single Task OS Program > GUI Shell > Compatibility Layer > Win 95/98 GUI Shell
4) Foxpro DB > Single Task OS Program > GUI Shell > Compatibility Layer > Win 95/98 GUI Shell > Compatibility Layer > WinNT Application
Now we see the complications compounding, so we decide on a re-write:
- Export Foxpro DB to CSV
5) SQL DB > WinNT Application
- Import CSV to SQL DB
Now the OS progression is much less dramatic. Once you've gone that route, you keep the core code, and upgrade your DB backbone with newer iterations of SQL, and anything else can be upgraded with some sort of MSVS script like VB or VCPP (which is why everything you install these days always wants a new version of .NET or some sort of MSVS runtime).
A fairly updated game engine doesn't have near as much as an issue. Most engines are just using a few different APIs, that can be changed or upgraded, and the core code-base can stay similar. It's also why almost every engine has some sort of DX or OpenGL element to it. And of course i'm oversimplifying it, but there's a difference.
Re-writing banking software makes sense. If that's the decision they made, then there was an enterprise risk analyses done, and from a financial perspective (including future legal and security costs), it would probably cost less money in the long run. You can absolutely bet on a company the size of Beth also having a risk analysis team.
As for Witcher 3 as a comparison, that's apples to oranges. You've got one game that's story oriented, and one that is exploration oriented. They each have both, but one is heavily biased. Witcher 1 used a modified version of the NWN Aurora engine. Yet the graphics and animation compared to NWN was very obviously superior (in some ways it was probably better than vanilla Skyrim). Fallout 4 compared to Witcher 3 wasn't necessarily because one engine was superior, it was mostly because the animators and artists were superior. And personally I agree Bethesda needs to improve those aspects. They've improved over the generations, but there are those that do it much better. However, that doesn't mean it's needed in the form of a brand new engine. In fact, as far as physics issues go that you mentioned, the Redengine in Witcher 3 originally used the Havok engine (currently used in Bethesda's Creation Engine), but was switched to PhysX. Bethesda could go a similar route with the hints technological horsepower needed for future projects that Howard has talked about. This won't need a new engine. This is no longer "legacy" code. Daggerfall was legacy code. And then there's modding. We were promised that Witcher 3 would surpass Skyrim and Fallout for modding. Mods are there, but it's not nearly as accessible. Neither engine is superior, but CDP probably did take better advantage of theirs.
And ironically, the reason CDP upgraded their engine in Witcher 2 was not to because of the limitations of the software, it was the limitations of the console hardware at the time. If you think the Creation Engine is a resource hog, try going back to playing Witcher 2 on PC and see how well that beast performs (hint: not so well considering the generation of hardware it was designed to run on).
EDIT: Sorry Couch! Large wall of text