(Sorry, I have not read the article yet, but I DO perform a lot of code reviews)
"This logic is repeated here and here, so if it's put into a function, then if we ever need to change that, we change it in one place."
i.e. tell them why it should be in a function.
I like this. It's difficult for me to generalize from examples like this, though. I am terrible at giving code reviews to people who aren't good at receiving criticism. I hesitate before making statements, which gives the impression that I think something's bad with the code, which is TRUE, but I don't know how to soften the blow. How do you handle people who take criticism of their code as an attack on their identity?
It's a hard problem. I had an instructor at Uni that gave some advice in this regard that has stuck with me (which probably won't help you much, but there you go). People don't like their code criticised because they see it as an extension of themselves, so, if you can, try instead to think of your code more as your child - it needs to be strong to survive when you're not around; and criticism helps make your child stronger. Separate it from your identity and some of the sting goes away. This really only helps in taking criticism, though.
I find it helps (a little) to do code reviews through tools instead of face-to-face. Smart Bear software have a pretty good (and free) code review tool. And try to only criticise things that matter; resist the urge to nit-pick as much as possible. Have a coding standard, to help justify your critiques and make it less personal.