Если вы внимательно посмотрите на реализацию, вы увидите, что варианты *_safe
используют временную переменную для хранения текущего элемента списка. Таким образом, если вы решите удалить текущий элемент списка во время обхода списка, то целостность списка - возможность получить следующий элемент из текущего - останется без изменений. Небезопасные варианты просто получают следующий элемент из текущего, что является недопустимым действием в случае, если текущий элемент удален и, скорее всего, освобожден.