Não tenho ideia de por que você está recebendo o erro de sinônimo. Mas isso é muito código para algo que deveria ser uma única instrução DELETE. Suponho que você tenha alterado para commit-every-n para evitar erros de reversão. Seria bom se você pudesse fazer com que seu DBA aumentasse o espaço de desfazer para que você possa realmente fazer o trabalho que precisa fazer. Caso contrário, acho que você ainda pode simplificar muito:
LOOP
DELETE FROM log_master
WHERE last_changed_date < :purge_date
AND event_id = :event_id
AND rownum <= :batch_delete_limit
USING purge_date, event_id, l_bulk_collect_limit;
EXIT WHEN SQL%NOTFOUND;
END LOOP;
E você pode usar sua lógica de repetição em torno disso, se quiser.
Desculpe se eu perdi alguma sutileza que torna isso diferente do que você está fazendo.