Sorry, but I'm not going to read all the previous comments on this page, but here's my 2 cents as a graphics programmer.
Much of today's graphics tech is based on the shaders used when rendering the image, these can be updated at pretty much any point. Once you're on the shader route, keeping your engine up to date is really not that hard. Sure, people discover new techniques now and then, some of which might be worth adding into an engine... but basically, the DNF engine as it is right now should hold out for another 3 years with virtually no changes (apart from small changes to the rendering code and shaders to take advantage of newer graphics hardware).
We're basically at the point now where we've almost exhausted the possibilities of triangle-based rendering. From an engine point-of-view, there is not all that much that hasn't been done at this point. Most of the real advances in graphics in the last last few years has all been in the vertex/fragment shader area, some work on enhancing shadows, some stuff on post processing. But more or less, nothing truly ground-breaking. I think that polygon-based engines are pretty much going to stay where they are now for the next while and something else will take over... Yes yes, change is bad, but I think it's on the horizon, perhaps in 5-10 years we'll see either voxel-based engines or ray-tracing being the more common in use.
Carmack is doing a lot of research on sparse voxel octrees at the moment, pretty cool stuff, in theory anyway. The basic idea is that you store the entire level in an octree (the leaves of the tree would be the smallest most detailed point), and the nodes of the tree stores the color of that point. No color means no geometry, if there is a color, you have a voxel there (because of the 3D visualization of an octree, the position is implicit and don't need to be stored). So in essence, the octree is actually both the geometry and the texture all in one. There are lots of advantages to the approach, every node would store the average color of the nodes it contains, so if rendering takes too long, you can scale back to a lower detail level and terminate early and stuff like that. Also, portions of the tree can be loaded and unloaded during runtime. My major concern is in the storage space required to store voxel-based level data... it isn't a small number, think lots of gigabytes per level... it's also very processing-heavy - you can offload some of it to the GPU using Cuda/OpenCL, but I'd be fairly skeptical on what you could achieve there. That's why, despite Carmack's belief that voxels are the future, I still think ray-tracing might be the actual way forward, but who knows... If history repeats itself, in about 7 years voxels will be the in thing (when everyone catches up to THE Carmack
).
I'm sorry, did I go off topic? Anyway, what does my rant above have to do with DNF? Well, almost nothing, but the short version is, engines are horribly complex beasts these days, but once they've been written, they're typically used for a much longer time by the same studio (of course with some tweaking). In the old days, hardware was changing at such a fast pace that every new game basically needed a new engine. They were also much simpler and could actually be written on a per-title basis, this isn't true anymore... I think we'll see variations of most of the current studios' engines utilized in the next generation and in some cases, the generation after that as well. The next big thing past our current engines will probably be a big shift in graphics rendering technique, most likely, we'll see hardware ray-tracers appearing at some point, or voxel-accelerating hardware... Although, things aren't always black and white, which brings me to an interesting point, it is possible that our current 3D accelerators will retain their current functionality but become so programmable that both techniques will be possible on the same hardware, in which case both techniques might see common use... who knows... Anyway, end of rant, back on topic:
The real problem in DNF's case is the in-game content, that's the stuff that will get dated quickly. Updating a shader or two is simple, but if the levels start looking dated, there is very little you can do to fix it without jumping in and reworking all that content...
Anyway, that's all from me... this got a lot more long-winded than I intended...
EDIT: Oh, and I forgot to mention another cool thing about this voxel engine technique... if written correctly, you can have virtually unlimited amounts of geometry/complexity without adding to the processing power. The problem is, to actually write one, you need a shit-load of processing power to begin with. A cool voxel demo that uses CUDA to speed it up - don't look at the quality of the image, look at the amount of geometry... give it 5 years and I'm sure something awesome will be possible -
http://www.youtube.com/watch?v=TjmRPjnWJ5g...feature=related