FWIW, the behavior was defined in SE-0434:
First, let's consider the stored properties of
structs isolated to global actors.letproperties of such types are implicitly treated asnonisolatedwithin the current module if they haveSendabletype, butvarproperties are not.
...
However, there is nothing unsafe about treatingxasnonisolated. ... So, first off, there's no reason for Swift to require(unsafe)when markingxnonisolated.
...
We can do better than that, though. It should be possible to treat avarstored property of a global-actor-isolated value type as implicitlynonisolatedunder the same conditions that aletproperty can be.
A simpler example:
@MainActor struct S {
var value: Int = 1
nonisolated mutating func increase() {
value += 1
}
}