I don't think everyone quite understands the dilemma here.
Most MMO's use the model on the top. All computers talk to one server. Most of the time it is actually a cluster of multiple computers, but your computer only sees it as one server. Your client tells the server where you are, what actions you are taking, and where you are going. It runs it's calculations, then reports back to your client where your opponent is, what your opponent is doing, and where your opponent is going. This is considered an arbiter. If one player logs off, the server can take over temporarily, and decide the fate of that player based on preset parameters.
Elite: Dangerous, on the other hand, uses the model on the bottom. It essentially connects both computers together, hence the term "peer-to-peer". Remember Kazaa, Bear Share, etc? Most of those used Peer to Peer technologies, which connects two clients together, relying solely on each client's connection to each other to send data. There is no arbiter, so everything is determined based on the parameters set by the client itself, which does not account for a lot of variables that a normal server could. In this scenario, if one player stops sending or receiving data, the other player's client has no idea where they are, what happened to them, and can no longer send information or report back any information. You are essentially, a ghost.
To give a (bad) analogy. The difference between the two would be the difference between communicating with someone using Teamspeak or Ventrilo, vs communicating with someone directly by calling them on your cell phone. If you are talking to someone on a cell phone, and the call drops, their line will hang up immediately.
TLDR: The reason why there is no easy solution on punishment, or how to handle combat loggers, is because in a peer to peer infrastructure, it is very easy to fool the other opponents client, and make it look like you lost connection to the game, by blocking ports, unplugging the router, Alt+F4, etc.