C'est surtout que dans les vues tu ne fais que générer des pseudo-tables. C'est avec une autre requête les exploitant que tu peux définir une clause Where qui restreint le résultat aux données qui t'intéressent.
Avec les procédures stockées tu fais les deux en même temps, d'où le gain de rapidité.
Si tu as l'intention de persister avec PostgreSQL, il y a un truc sur lequel il faut absolument que tu te penches car ça surdéchire sa race : l'écriture de règles. C'est grâce aux règles que les vues sont constituées, et c'est toujours avec elles que tu peux faire des trucs sataniques comme notamment les rendre modifiables (évidemment, en apparence seulement).
Vulgaire mais efficace. Et si tu maîtrises les deux, ORM & SQL, t'es le roi du pétrole.