While propagation is used to remove routes from the list, it doesn't actually have any idea of what activity it is propagating for, so I don't think it could be used if we wanted to. So we can't say: "If this activity is a content update activity, then we don't want to 'propagate' to people who are currently editing it".

It would be abuse if we could, though. Propagation exists to allow us to mingle with routes without the worry that we're opening up a vector where some private or loggedin entity is being delivered to someone who doesn't have access to it. For example, we can implement "watching" for content and groups, and add a "watchers" route and just add it to the routing configuration without worrying about "Hey, what if this content item became private after someone watched it? Now we're going to expose changes in this content item to watchers who don't have access". Propagation hides behind the scenes and allows us to have fun with routes :)