Na minha opinião, Stored Procedures deve ser usada apenas para manipulação de dados quando a mesma rotina precisa ser usada entre várias aplicações diferentes ou para ETL entre bancos de dados ou tabelas, nada mais. Basicamente, faça o máximo possível no código até encontrar o princípio DRY ou o que você está fazendo é simplesmente mover dados de um lugar para outro dentro do banco de dados.
As visualizações podem ser usadas para fornecer uma "visualização" alternativa ou simplificada dos dados. Como tal, eu iria com uma visão, pois você não está realmente manipulando os dados, mas encontrando um método diferente de exibi-los.