Если это выбор между «select * from vwMyView» и «exec MyProc ()», разница невелика. Оба будут возвращать набор результатов, который вы можете использовать как хотите. Стоит отметить, что если вы используете представление, его можно объединить с другими таблицами, что может или не может применяться к вашей ситуации.
Если вы хотите / должны фильтровать результирующий набор, вам нужно использовать представление, так как просто добавить предложение where, где с процедурой вам нужно будет передать параметры.
Если вы хотите / должны использовать существующий процесс как часть вашего источника, вам нужно будет использовать хранимую процедуру, поскольку представление не может ссылаться на хранимую процедуру.
Однако "тонкие ошибки", о которых вы упоминаете, могут возникать при любом способе. Если у вас есть представление A, ссылочное представление B, и запрос, который материализует представление B, изменяется (без изменения количества возвращаемых столбцов), все, что зависит от представления A, может сломаться. То же самое относится и к хранимым процессам: если proc B изменяет способ создания своего результирующего набора, proc A может больше не работать правильно.
В общем, вы должны быть осторожны, когда у вас есть представления, ссылающиеся на представления и процессы, ссылающиеся на процессы. В дополнение к вышеупомянутой проблеме вы можете внести некоторые довольно серьезные проблемы с производительностью.