Okay so Caleb could have really left or as most people believe John let him fall but what about this:
Caleb let's go of his own free will and falls to his death. Caleb had been kind of a homewrecker but I think when John talks to him afterwards he probably had some remorse. Being called out and spoken to man-to-man really does put things into perspective for some people. I really didn't like Caleb (or John that much but he did have more stake to claim) but I like this theory for the fact that it allows Caleb to redeem himself and for John not to be a murderer.
She's a human being, no one had a "claim "on her. Of the two, she had much more in common with Caleb, if he was indeed being honest. Religion, their rural upbringing, seeming relative education, school rivalry, etc. They were both also victims of the war machine. John was troubled, had been violent, scorned her, didn't share her core beliefs. He was part of the military industrial complex that led to this Armageddon. He also didn't seem like he was just trying to get in her pants, like Caleb. But whatever happened, the choice was ultimately hers
They also purposely made it very unclear what happened at the end. It could've gone either way. He didn't just almost fall once, he almost fell twice. The first time we clearly see John think about letting go but ultimately not doing so. Then Caleb slipped again, tempting John again; and we aren't shown what happens. Caleb did indeed believe more people were alive and may have decided he would return John's kindness and move on. Or he got the booty, and having achieved his conquest, moved on. Spread the seed.