When a connection is dropped (doesn't matter how), then SocketServer doesn't dispose of the SocketEndPoint representing this end point.
This can be noticed because the socket's GC continues to run even when the connection has been dropped. Maybe this doesn't make a lot of sense (why would the GC need to run when there's no active connection to create garbage anyways?) and should be changed as well.