Я думаю, что Джон Сондерс на правильном пути, тот факт, что данные отправляются на диск или по сети в виде «потока», почти наверняка является источником этого термина.
Однако другой способ думать об этом так: состояние программы распространяется по всей памяти, а указатели / ссылки указывают повсюду. У вас есть массивы, списки, деревья, стеки вызовов, кучи выделенной памяти и т. Д. В произвольном порядке.
Если вы хотите сохранить какое-либо состояние, вы не можете использовать большую часть информации в вашей программе. Например, любые значения указателя или смещения стека (независимо от того, используются ли они непосредственно или используются внутри среды выполнения языка и т. Д.), Скорее всего, будут недействительными при следующем запуске вашей программы, поскольку куча будет использоваться для выделения немного разных серий блоков памяти. , Сохранение этих значений указателя будет бесполезным.
Чтобы сохранить какое-то состояние, вы должны «привести свои дела в порядок» таким образом, чтобы сохраняемая информация была только той частью, которая будет актуальна позже.