1) Встроены ли в Qt механизмы, позволяющие сделать так, чтобы не было одинаковых детей у одного родителя в древовидной модели, полученной наследованием от QAbstractItemModel? Или перед вставкой в модель надо проверять нет ли уже элемента с таким именем?
Насколько я знаю, таких механизмов в QAbstractItemModel нет. Данные для модели разработчик формирует сам, так что ему и проверять их корректность.
2) Мне в дереве хочется отображать некоторые файлы. В плане интерфейса удобно, чтобы пользователь видел только имена, а в плане удобства программирования хочется, чтобы при обращении к элементу, можно было узнать полный путь файла. Есть ли механизм, показывающий часть данных, или надо в класс элемента полный путь прописывать?
QAbstractItemView для отображения данных запрашивают их через метод QAbstractItemModel::data() с role = Qt::DisplayRole. Можно определить свою роль для данных (см. Qt::UserRole), и для этой роли через тот же QAbstractItemModel::data() возвращать другие данные.