Funny thing, I just made a small comment about this example in particular. But maybe read my message above to the end and follow the links. I was just trying to say that a difference list is a code pattern, not a particular data structure.
I agree with everything else you wrote.