Rooms vs Sync-Units
### Half-baked idea
Matrix should distinguish between the user's idea of a room and the unit of synchronization used in the implementation.
- Use the term "room" only when referring to the high-level concept
- a sequence of sync-units joined together by "tombstone" entries
- identified by a "#" sigil id (currently called "room alias" but should be just "room")
- Use a new term such as "sync-unit" when referring to the lower level eventually-consistent data unit
- identified by a "!" sigil id (currently called "room-id")
A client may well want to display a high-level room as a concatenated view of the low-level units (unlike now where Riot displays one sync-unit with links to predecessor and successor).
Sometimes a user generates a link to one sync-unit when what they meant the high level room. There are already some such UX issues filed, e.g.
- Permalinks: ! ids are unroutable, and # aliases are not permanent. Please solve. #2925
- Share room button should use alias instead of room ID #12447
I think they may be easier to resolve if there is a clear conceptual distinction.