The Witness and Braid designer Jonathan Blow took to Twitter to give his opinion on the problems of big and complex games, giving an interesting perspective on what is a challenge and what isn't. Surprisingly, memory management doesn't seem to be the issue:

Modern games get very complicated to program and can be hard to debug sometimes,but not much of that difficulty comes from memory management. Almost none, in fact, unless you are doing low-level DMA stuff, in which case automated memory management is completely inappropriate anyway.

The difficulty in big games just comes from the fact that the systems we build are inherently complex, in terms of their basic logic.

Certainly programming techniques can help mitigate this, but they are often not the techniques people try to sell you. But even then, these techniques can only take you so far, because the problem is the problem. At some level it has some irreducible amount of complexity.

By far the most effective programming tool is vigilance in keeping your program's complexity close to that minimum.

It's no surprise that big and complex games often tend to ship with bug and glitches, as the complexities under the hood are often staggering, and nearly impossible even for the biggest QA team to completely iron out. That said, I honestly can't wait to see The Witness in action on my screen. Every screenshot published is pure poetry.