You do not need to unhook a client if he leaves, that would just be redundant as sdkhooks automatically does that.
You'd be better off using a global variable and using the same callback, unless you want your code to look confusing for having two callbacks for the same client with the same type of hook.