No tengo idea de por qué obtienes el error de sinónimo. Pero eso es mucho código para algo que debería ser una sola instrucción DELETE. Supongo que lo ha cambiado a commit-every-n para evitar errores de reversión. Sería bueno si pudiera hacer que su DBA aumentara el espacio de deshacer para que pueda hacer el trabajo que necesita hacer. De lo contrario, creo que aún puede hacerlo mucho más simple:
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;
Y puede usar su lógica de reintento si lo desea.
Disculpas si me perdí alguna sutileza que hace que esto sea diferente de lo que estás haciendo.