Что, никто не понимает, что XML - это ни разу не текст?
В одном XML значение "Вася" - в начале файла, а в другом оно - в конце. С точки зрения набора значений, файлы совершенно идентичны, а с точки зрения diff'а - они разные.
И таких значений, вложенных друг в друга, может быть тьма. Каким инструментом это сравнивать?