Olá,
Na verdade a performance não esta no fato de se utilizar uma ou outra e sim na forma como elas estão construídas. A principal diferença entre elas eh que a function pode ser executada dentro de um select pois ela sempre retorna valor. No Oracle 11g isso pode ser de grande valia pois há um armazenamento do resultado em cache, e aí sim, um bom ganho de performance.
[]s Ishii
ps: Outro ponto é que numa procedure eu posso ter vários results pois isso dependerá do parâmetro OUT da mesma, no caso de function sempre será um só…