If the extension is visible from the place you declare conformance to a protocol, then its methods are available as candidates to be chosen to satisfy a protocol requirement. The mapping of protocol requirements to implementations is fixed from the context the protocol conformance is declared, though, and can't be dynamically modified once established. This is to prevent the problems with ObjC categories clashing and unexpectedly changing the behavior of other unrelated code at runtime.
It would be a useful future extension for extensions to be able to add new dynamically-dispatched requirements to protocols, but currently extensions only add methods to types that conform to the protocol, not to the protocol itself.