A protocol is a statement about the minimum capabilities of a type, and it cannot really restrict the type to having a private setter. From the point of view of someone using the protocol, this is no different than if the protocol declared a { get } requirement, which cannot prevent the conforming type from having a setter, private or public.
I agree with you, but you are describing the current state of protocol in swift. Do you mind if there's any intention to provide such kind of feature in future?
Such features were discussed in topics about abstract classes if I remember correctly. Abstract classes were deferred though. There were also discussions about private protocol requirements.
Simply in a protocol extension mutating func doesn’t work if property is { get } only, this mean u can’t provide a default method your own protocols. @Jumhyn