The key insight in the first comment took me a rewrite to appreciate: if a chunk's identity is derived from its position, every edit above it changes the identity of everything below, so a one-line change looks like a hundred deletions and a hundred insertions.
Hash the content, key on the document plus that hash, and an edit becomes exactly the chunks that changed.