Ao contrário do código de linguagem de programação real, eles:
- não é portátil (cada banco de dados tem sua própria versão de PL/SQL. Às vezes, versões diferentes do mesmo banco de dados são incompatíveis - eu já vi isso!)
- não é facilmente testável - você precisa de um real (dev) instância de banco de dados para testá-los e, portanto, testar a unidade de seu código como parte de uma compilação é praticamente impossível
- não é facilmente atualizável/liberado - você deve eliminá-los/criá-los, ou seja, modificar o banco de dados de produção para liberá-los
- não tem suporte de biblioteca (por que escrever código quando outra pessoa tem)
- não são facilmente integráveis com outras tecnologias (tente chamar um serviço da web delas)
- eles usam uma linguagem tão primitiva quanto o Fortran e, portanto, são deselegantes e trabalhosos para realizar uma codificação útil, por isso é difícil expressar a lógica de negócios, embora normalmente seja esse o objetivo principal deles
- não oferecem depuração/rastreamento/registro de mensagens etc (alguns dbs podem suportar isso - eu ainda não o vi)
- falta de um IDE decente para ajudar com sintaxe e vinculação a outros procedimentos existentes (por exemplo, como o Eclipse faz para java)
- pessoas especializadas em codificá-los são mais raras e mais caras do que codificadores de aplicativos
- seu "alto desempenho" é um mito, porque eles são executados no servidor de banco de dados que geralmente aumentam a carga do servidor db, portanto, usá-los geralmente reduzirá sua taxa de transferência máxima
- incapacidade de compartilhar constantes de forma eficiente (normalmente resolvido criando uma tabela e questionando-a de dentro do seu procedimento - muito ineficiente)
- etc.
Se você tem uma ação muito específica do banco de dados (por exemplo, uma ação na transação para manter a integridade do banco de dados), ou mantém seus procedimentos muito atômicos e simples, talvez você possa considerá-los.
Recomenda-se cautela ao especificar "alto desempenho" antecipadamente. Muitas vezes leva a más escolhas às custas de um bom design e vai te morder muito mais cedo do que você pensa.
Use os procedimentos armazenados por sua conta e risco (de alguém que esteve lá e nunca quer voltar). Minha recomendação é evitá-los como a praga.