En mi opinión, los procedimientos almacenados deben usarse únicamente para la manipulación de datos cuando se necesita usar la misma rutina entre varias aplicaciones diferentes o para ETL entre bases de datos o tablas, nada más. Básicamente, haga todo lo que pueda en el código hasta que se encuentre con el principio DRY o lo que está haciendo es simplemente mover datos de un lugar a otro dentro de la base de datos.
Las vistas se pueden utilizar para proporcionar una "vista" alternativa o simplificada de los datos. Como tal, iría con una vista, ya que en realidad no está manipulando los datos tanto como buscando un método diferente para mostrarlos.