This is not true. It is not safe to promote non-`SafelyMutable` members to `&exclusive self` in a `&self` method, or to `&exclusive mutable self` in a `&mutable self` method.

The reason is that these members **are still aliased** even though you haven't exposed references to them to the outside world. The reason is that, as @thestinger said, two pointers are aliased if writes made through one of them can be observed through the other. So if I have two `&mutable` references to a `SafelyMutable` type, and I call a method on one that mutates a non-`SafelyMutable` field, I can observe that write through the other `&mutable` reference. It doesn't matter that the field itself isn't exposed via a reference, because it's visible within methods that I call on my `&mutable` reference.