Bem, eu usaria o proc armazenado para encapsular melhor o código e controlar as permissões.
Uma visão não é realmente encapsulamento:é uma macro que se expande. Se você começar a participar de visualizações em breve, terá algumas perguntas horríveis. Sim, eles podem ser JOINed, mas eles não devem ..
Dizendo isso, views são uma ferramenta que tem seu lugar (views indexados por exemplo) como procs armazenados.