From what I can tell, one of the concerns is that the network thread accesses some global state. When you don’t wait for the network thread to stop before terminating the program, then there can be a race between destruction of that global state and accesses of it from the network thread. There have been attempts to clean up some of these cases, and I think there’s a desire to eliminate this class of problem entirely, but for now we don’t make any guarantees.
In practice, I suspect most of the time you fail to shut down the network thread, nothing bad will happen. It may be possible that sometimes the client crashes during shutdown. Recently, we also saw that the serialization of some messages to the cluster was corrupted, which can result in crashes on the cluster or potentially worse. We fixed the one particular case where we’ve seen this problem, but I’m not sure I can definitively say that there aren’t others.