Hmm. =Tamar, I think we're unfairly blaming Carrot because he did not have the same options that Vimes had.
Let's get one thing straight: Carrot, like Vimes and Vetinari, is genuinely devoted to serving A-M (and, by extension, Vetinari). He sees himself as a servant of A-M, so whatever he does, he does "for the good of the city"
as a whole.
True, Carrot does kill the villain in Guards! Guards! -- but since said villain tried to destroy A-M, Carrot feels he has no choice.
Also true, Carrot kills the villain in Men at Arms -- but again, he feels he has no choice. Said villain would have touted to all and sundry that Carrot was the long-returned King of Ankh, which Carrot wishes to avoid.
In short, although Carrot knows people's names, likes and dislikes etc., but he doesn't always think of what they want. He always assumes that other people are like him -- i.e. that they also live to serve A-M. Once they reveal that they're not -- that they're out to destroy A-M or its way of life -- he has no choice.
One last (but fun) observation: when Vimes
is around, Carrot tries to arrest the "minor" antagonists. For instance:
- in G!G!, Carrot tries to arrest the Dragon (instead of Lupine Wonse) -- and also the Chief of the Thieves' Guild.
- in FoC, Carrot tries to arrest the King of Golems (instead of Dragon, King of Arms).
When Vimes
isn't around, Carrot tries arresting the big fish and fails spectacularly, e.g.:
- in TFE, Carrot tries to arrest Wolfgang. (It doesn't go well).
- in TLH, Carrot tries to arrest Cohen the Barbarian. (Again, it doesn't go well).