Как удержать все в памяти?
Сугубое ИМХО:
1) В голове держим только общие принципы. 
2) Если есть какие то узкие нюансы, которые часто используются — используем хранилище сниппетов, либо в коде пишем комментарии, указывающие на уникальность блока — потом можно найти.
3) Стараться надо во все проекты протягивать удачные решения из прошлых проектов, даже если это вызовет замену части кода.
4) Тренировка мозга — Lumosity. Очень помогает.

Не уверен что полностью советы подойдут для веба. Сам пишу на с++, сейчас 2 активных проекта и 2 в поддержке. В каждом — свой движок. Вполне без проблем помню нюансы, либо быстро вспомниаю простым поиском по проекту.
То, что активно не используется — «забывается», уходит на более глубокие слои памяти с долгим доступом, как-то так.