Нереально. Точнее, на уровне браузера можно было бы делать снимок текущего состояния на какой-то момент времени (это не только DOM, там же и JavaScript есть со своим состоянием всех подгруженных скриптов), но всё равно сломается, если ожидается наличие живого соединения (через WebSocket, например).
Из-за этого браузеры отказались от поддержки возврата к сохранённому состоянию страниц по кнопке "назад", и просто перезагружают всё заново при переходах (последней это поддерживала Opera Presto).