Apparently DifferenceEngine::renderNewRevision() never really worked right, it only functions when diffing saved revisions.
When the code was written it generated a preview of the latest revision of the page, rather than showing the result of the undo, and this wasn't noticed during coding or review. After 4835a75e it doesn't generate any preview at all.