The rule for accessing immutable, sendable properties is actually kind of subtle—it is not the case that such properties are nonisolated. Indeed, they carry the relevant isolation for the (possibly global) actor. But as a pragmatic usability improvement, within the same module you're allowed to access immutable properties of Sendable type, because the compiler knows it's safe. From outside the module, though, for a public property, access remains isolated to the actor and must be awaited.
6 Likes