В интерактивных механизмах для самостоятельного удаления элементов пользователями я часто использую ссылки с "зашитым" в них ID удаляемого элемента.
Скрипт обрабатывает GET-запрос и проверяет: имеет ли право пользователь удалять элемент, относится ли ID к тому инфоблоку, элементы которого можно удалить этой операцией и т.д. После чего, собственно, удаляет элемент.
Применение CIBlockElement::Delete() без такой проверки чревато тем, что злодей простым перебором ID может удалить ВСЕ элементы инфоблоков подчистую. Но для проверки приходится применять CIBlockElement::GetList() с фильтрацией.
Предлагаю добавить параметров в функцию CIBlockElement::Delete() для контроля параметров элемента перед его удалением. Например, стандартный $arFilter позволил бы удалять только тот элемент, который удовлетворяет заранее прописанным параметрам.