This has been bothering me about Rimworld. People are dynamic. They learn, they change, they adapt, they react, they are reshaped. My suggestion goes as follows:
A person breaking from bad stuff should, over time, become desensitized to it.
Mental break from cannibalism: permanent -2% break threshold to cannibalism, -2 mood penalty from it.
Mental break from pain: permanent -2% break threshold from pain, -2 mood penalty from it.
This should not remove or make traits useless. The solution to that is simple. Make the cap 6-12%. Maybe add a trait when it reaches max, like "Desensitized to Violence/cannibalism/Dead bodies".
To make things more interesting, maybe open up new traits for colonists who have "seen some shit". One could also add a chance for this to add a more negative trait. Say Bob has had mental breaks because of bad stuff way to often, reaching the cap on 2 of these. Bob could get one of these:
Apathetic: - 3 social, - 3 doctoring.
Suicidal: Chance to commit suicide on every new mental break
Broken inside: 1-3 random interests are downgraded
Or even stronger ones like:
Mental Fortress: Unbreakable
Steadfast added
Iron Will added
It currently makes no sense that a colonist who sees for example cannibalism on a daily basis and has mental breaks from it does not change him/her as a person, for better or worse.
EDIT: It makes more sense. And it does not necessarily make the game easier. If you are reckless / careless about your colonists wellbeing they could just as easily end up with negative traits as well as positive ones as a reaction to the emotional turmoil they go through.