I don't recall the implementation details, but I have heard of undo-tree landing in invalid states that can break the history. It might just be that vundo is newer, but I haven't heard of these kinds of stories for that package.
In my eyes it is the more idiomatic implementation.