Traditional, image-based Smalltalk worked this way. Often debuggers and repl-based languages will support some changes without restarting, but the intention is typically to support debugging and exploration, not to preserve data over the long term. Being able to restart and reload is so taken for granted that every web browser supports it and it's exposed to end users.
A compiler is free to optimize non-persistent data structures to the point where the objects you read about in the code might not actually exist. A persistent system requires that the runtime actually has the data described by the language stored in a way that you can inspect it and write new code that uses it.