On cascading errors, yes, it seems we need to provide a way to choke off those problems and clear the issue from the active set.
On machine removal, yes it seems we need to adapt the thinking and be explicit about that.
On relation data, which is really interface documentation and debugging, the discussions we have had are twofold. First, focusing on code reuse so the details of the data changes are encapsulated in code which is written by one author for both halves of the relation. That means accepting a language-specific approach. And second, on making it easier to visualise and step through the evolving relation data, which would be part of making it easier to interoperate with an interface implemented by someone else in a different language.
The reason we feel code reuse is the more compelling approach is because it is easier to vendor and version code than data protocols.