I think that the main problem is that games have to use UDP to talk to each other. UDP is an unreliable protocol, but for reasons of speed, especially in real-time games like CoH, it is used pretty much exclusively.
So, when a UDP packet is dropped (for any reason along the route), the sending machine has no way of knowing that it has been, and will continue merrily firing off packets to their destination. If there's enough packets dropped, then the receiver will think that the the sender has died. Compounding this if the packet size is larger than normal, then the packet will get broken into more fragments than normal (every packet is broken up so that they sit within the network's configured MTU size, larger packet means more fragments). If any *one* of those fragments get lost, then the whole packet is dropped.
It's actually surprising that any UDP games work at all, ever really.
What I'm trying to say is that the way CoH works is an established method, but is subject to the vagueries of the internet and its routing. If your current route is traversing a poorly configured network, then the chances of you dropping packets increases. The reasons are countless.
As for how the client handles this, that's a different matter, but at some point if it suddenly can't communicate with another machine, you can't expect it to sit there for ever waiting for the traffic that will never come because of some problem along the way that no-one [in this context, no-one is either player or relic. Clearly someone has control over it somehere

] has any real control over.
I imagine the client's behaviour could be improved, but so could anything. After watching the development of this game over the last few months, I actually give the devs some credit in that if it's something that they can do something about, they will.