Erick,
Na tabela não está duplicado e não tenho indices na tabela. No cursor de resultado, não está duplicado.
Mas a função é acionada 2 vezes para o primeiro registro.
Faz um teste aí com um :
select *,messagebox(<algum codigo>) from <tabela qualquer>
acionou o messagebox 2 vezes para o primeiro registro??