Todo lo que pongas en SP en la BD, está disponible por terceros, salvo que logres que los SP este cifrados o compilados en forma externa, eso es algo que si mal no recuerdo permite SQL Server.
En mi caso, lo que si o si debe estar en la bd son las vistas de consultas (cualesquiera) o cualquier otro proceso que reduzca el flujo de datos a través de la red.
Las reglas de negocio deberían estar ubicadas en el punto donde se evita que circulen datos "no apropiados" por la red.
Por ejemplo. Si armo una transacción con datos de varios formularios (muchos datos), los envío al SGBD para que me los rechace por incompletos, inconsistentes, etc. fue una transferencia "inútil".
Esto último es como si estuvieras en una intranet (cliente-delgado = navegador) donde es poco práctico o inseguro poner código de validación vía JS.
Además, los SP se harían bastante "pesados", teniendo en cuenta que generalmente, el lenguaje de éstos no es tan versátil como un lenguaje de programación de los comúnmente usados (vfp, C#, python, etc.) en la aplicación de escritorio.
Al menos, esos son puntos que evalúo al momento de hacer la aplicación.
Otra cosa a tener en cuenta, si lo codificas en tu lenguaje de programación habitual, te va a ser más fácil migrar la regla a otro lenguaje de programación de reemplazo, si lo programas en SP de un SGBD, te va a ser más dificil migrar el código al SGBD diferente.
Lo que tienes que sopesar es si quieres que tu aplicación en el lenguaje X que actualmente usas, pueda trabajar sobre diferentes SGBD o el SGBD que seleccionaste ahora, sea manejable desde cualquier lenguaje (indefinido) futuro.
Estos son puntos adicionales a considerar a los que comento Fernando
Saludos: Miguel, La Pampa (RA)