Apologies for not responding to this before. I agree that a nested protocol should not satisfy an associated type requirement.
Especially with the loss of bare protocol existential syntax, the language is moving towards putting a clearer distinction between protocols (i.e. constraints) and concrete types. associatedtype is currently used to refer to concrete types, and it would be problematic in a lot of senses for it to bind to a nested protocol.
There have been requests in the past for "associated protocols" or something broadly to that effect:
- Protocols with associated protocols?
- Support for protocols as parameters for constrained generics
- Generalized supertype constraints
If we ever did add some kind of associated protocol feature, it might be reasonable to use nested protocols to define them, as we currently can with associated types and nested concrete types.