Character Analysis
It Was All Yellow
Caleb finds himself in a similar situation to Tobias in Allegiant. He betrayed Tris and almost got her killed, just as Tobias betrays Tris and ends up getting Uriah killed. Poor Caleb doesn't get forgiven easily, though. He's branded a traitor and, worse, a coward.
You'd think Tobias would have more sympathy for Caleb, but maybe it's Caleb's cowardice that makes Tobias despise him so much. Tobias is a man of action. His actions killed Uriah. Caleb's non-action almost killed Tris. (It looks like both extremes cause trouble.) Tobias thinks Caleb is "the sort of despicable person who has no understanding of how despicable he is" (10.125). Tobias thinks Caleb is hopeless, beyond any help.
But, like Tobias, Caleb does want to change and be forgiven. He's willing to sacrifice himself to earn Tris's forgiveness. And it works: Tris says, "Yes, I have [forgiven you]. […] Or at least, I desperately want to, and I think that might be the same thing" (45.33).
Tris ends up sacrificing herself instead of letting Caleb die, so he has to carry that guilt around, too. It seems like one more thing on the list of egregious offenses that Tobias will never forgive him for, but at least Tris is over it. Still, by the time the "two years later" epilogue rolls around, Tobias has actually forgiven him, even if Caleb reminds him too much of Tris for them to ever spend any time together.