The distinction between storing code context and storing the relationships behind that context is the interesting part here. An agent can retrieve the same files in a new session, but that doesn't mean it has retained the reasoning needed to safely change them.
One practical extension I’d add is treating the semantic layer as a kind of architectural cache with explicit invalidation. If the code changes but the extracted relationships don't, the agent could be reasoning from a stale model without realizing it. Versioning those relationships against commits, tests, and design decisions could make the “persistent understanding” idea much more useful in real-world refactoring workflows.
That feels like an important bridge between semantic modeling and something engineers can actually trust in production.