la cosa più corretta è non utilizzare echo.

Tanto nel momento della chiamata della funzione, la printf prevede già la stampa a video.

Se utilizzare o meno il return sta a te. Se vuoi sapere quanti dati sono stati stampati usa il return, se no no.

se fai $caratteri = translate(...)

a video avrai la stringa stampata, mentre nella variabile $caratteri avrai il numero di caratteri stampati che potrai usare in tutti i modi che vorrai.