Os serviços da Web devem lançar exceções OU objetos de resultado?

Eu não tenho certeza se estou completamente feliz que lançar exceções em serviços da web seja uma boa ideia. Eu não me importaria muito se não fosse pelo rastreamento da pilha. Isso não é algo que eu não quero.

Eu tenho pesquisado em torno de várias implementações e realmente não parece haver um consenso sobre isso. O CampaignMonitor, por exemplo, retorna um objeto Result e outros ainda não.

Arquitetonicamente, não tenho certeza se retornar um objeto de retorno faz sentido, com certeza uma exceção é uma exceção, mas o que eu gosto sobre um objeto Return é que ele é uma solução mais elegante para o usuário final.

Alguém tem alguma solução melhor?

EDITAR

BTW Estou usando serviços da web ASMX, onde ligar CustomErrors não é uma opção.

questionAnswers(6)

yourAnswerToTheQuestion