One theory: John did not kill Caleb, he saved him once and saved him again when Caleb tried to fall on purpose. He wanted to test how good John was, Caleb did a creepy smirk the second time John was trying to pull him and that means that he understood that John was trustworthy and more deserving than himself.
But then again, maybe he did kill him - it was ambiguous, that was the whole point, for the 100th time