I have an idea and not sure how practical and applicable it can be.
The concept basically is a higher level key pair. We have now a public and private keys. Let’s add two more keys.
The first new key type is a MASTER key, which is a user’s (salt * npub * nsec) or randomly generated. The second key is a POSTER key, which is a public key derived from the MASTER key. Theoretically, a user can have infinite MASTER keys. However, a user may decide at any moment to choose and assign the new key pair. Assigning the new key pair requires the user to publish from the associated npub a possibly new kind event and advertise the POSTER key. This event is a one time irreversible event.
POSTER keys work as pointers and status checkers. They are the npubs managers and the identity keepers. They publish npubs with updatable tags or labels for self or others.
Example: I decided to generate my key pair today. I go to a nostr identity manager client. I enter my current nsec and login to generate a new MASTER pair and publish the event from my current npub. I then will be able to label my npub as active, revoked, expired or old… I could then generate new key pairs for any use case and tag them as such. I could also vouch to other’s npub’s essentially to build on the idea of web of trust.
This also can work with your idea of allowing other people to federate or co-manage identities or keys. I just thought of all this now. I could have overlooked some design flaws.