Do we need to remove shared object when the client service got removed ? If so, how ?
For example see
it shares callback listener on initialize but never removes it on terminate.
Edit:
Suppose we have some services which we add them when player is in game session and remove them when he leaves the game session, but stays connected (logged in), and he might want to rejoin to game session again.
Stuff should be cleaned up during normal connection termination but in general a lot of the services consider that once they are registered they will exist until the connection tears down.