Legacy codebases in languages like COBOL, Fortran, and C++ might run from today until hell freezes over. But if you've got two million lines of code behind your operation and someone wants to tweak a few of the input fields and do some surgery on the user interface, you're going to need three geniuses and five months to get it done. If you want some more serious modifications, you might be spending a few million dollars, waiting a year, and sacrificing animals to some Aztec deity before it gets done. So you have something rock solid, but like anything else rock solid it's damn difficult to move.
That's where a rewrite done well has some chance of being a better choice. Haskell, Ocaml, F#, Scala, Clojure, Rust, Go... pick your new tool, vette it carefully. Pick your developer team even more carefully. Maybe they can give you something that has all of the useful features of your existing monolithic built out of languages that manage to have more features, more corner cases, and more cruft and write something smaller, just as fast, and far more flexible.
Now to be fair, if you cherry pick your developers and your language features very carefully a clean rewrite in C++11 or Fortran 2008 might get you the same advantages. I suspect world class Haskell developers (for example) might to better than equally world class C++ developers, but that's a hard call.
Sometimes "backwards compatibility at any cost" has a cost of being able to innovate.