One problem with syntactic-based diff tools (like difftastic) is that they can show confusing results when replacing a function.
I've realised that traditional diffs have the same problem! There's one common line between old and new, and diff has matched the closing parens.