I swear by my todolist. I've got both a digital version and a pen-and-paper version which I keep with me at all times. The payoff in efficiency and effectiveness has been enormous, and there's no way I'm migrating away from structured recording.
But of course, there are always weaknesses in a system. In this case, the list works perfectly within its scope of coverage, and only within its scope of coverage; what doesn't get recorded doesn't get done.
There have been many occasions where I've missed something that "wasn't on the list", but I've been fortunate to have this only ever occur over trivial items. Still, the threat of disaster is ever present, and in the spirit of fault-tolerance, something has to be done.
So I went about experimenting with a bunch of techniques, from creating list heuristics, to setting external reminders, to creating lists of lists (meta-lists). Still, some items managed to slip through.
I think the only way to resolve this is to always have a list, but to never need it: either you've got root access to the brain of a genius (photographic memory), or you've got his network list (a strong team to fill in your cognitive gaps).