Из преимуществ перед СDatabase как минимум встроенное кэширование, ето раз, встроенные проверки - например при попытки добавлении столбца будет выполнена проверка на существование с таким именем, это два и на третье - просто удобнее - аналог следующей операции на SQL я думаю будет менее читабелен:
Кстати, небольшой оффтоп про выборки из таблиц и в частности про GetList: в Битриксе есть ряд замечательных методов, объединенных названием PrepareSQL (например CGroup::PrepareSQL). Любой из этих методов позволяет сделать полноценную функцию GetList (со всеми группировками, объединениями, сортировками и фильтрами) для своих таблиц за пять минут.
Создание GetList-а сводится лишь к заполнению специального массива заданной структуры. Причем такой подход оказывается удивительно гибким. В частности, удавалось создавать GetList-ы с возможностью генерации иерархических запросов, использования аналитических функций и т.д. И, опять же, все что для этого потребовалось, это правильно поиграться с тем самым массивом.
Плюс, в теории, написанные таким образом GetList-ы будут расширять свою функциональность вместе с соответствующими обновлениями Битрикса.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».