Ref T7643. The prefix/suffix smoothing affected code diffs, and I think it's worse for them overall.
Generally, code has fewer real "words" than prose does. For example, if ($x) { or $x = ($y && $z); are not "words", and it's correct to highlight very limited parts of them.
Add separate "full" and "internal" smoothing modes for prose and code, respectively. I'll follow up by adjusting arcanist and phabricator.