For amxx < 183, there is a chance that client_disconnect won't be fired. A new forward was added in 1.8.3 to fix this problem. Depending on what amxx version you use, decide when to reset.
But does FM's FM_ClientDisconnect for example work properly and cover all the cases?