The following is an explanation of the problem; not a solution.  I'm still
not sure what the correct solution is.  The bottom line is that "annotate"
or "blame" becomes complicated when you have lots of branching and merging...

Refer to the history graph of the tclListObj.c source file here:


The current implementation of "annotate" starts with the requested node
(31d1cfe5711802cc) and then works downward from there on the same branch
to (66e766cf759f85cf) and (52cc348a24f17bca) and so forth.  But the five-line
change mentioned in the problem statement above comes in from a different
branch, specifically from (e25d618ef36a26ce) on the core-8-5-branch.  So the
five-line change does not appear in the "annotate" output because it is
a diff from one branch into another, whereas the current "annotate" only
shows changes from versions on the same branch.

It is unclear, yet, whether or not it is desirable to include "annotate"
changes from other branches.  Perhaps this should be an option on the display.
Further research is necessary...