Para citar "Ask Tom Oracle":
funções em pipeline são simplesmente "código que você pode fingir que é uma tabela de banco de dados"
funções em pipeline dão a você a capacidade (incrível para mim) de
select * from PLSQL_FUNCTION;
sempre que você achar que pode usá-lo -- para selecionar * de uma função, em vez de uma tabela, pode ser "útil".
Quanto às vantagens:uma grande vantagem de usar uma função Pipeline é que sua função pode retornar linhas uma a uma em vez de construir todo o conjunto de resultados na memória como um todo antes de retorná-lo.
O acima fornece a otimização óbvia - economia de memória de algo que, de outra forma, retornaria um grande conjunto de resultados.
Um exemplo bastante interessante de usar funções em pipeline está aqui
O que parece ser um bom uso deles é ETL (extrair/transformar/carregar) - por exemplo veja aqui