Я думаю, это зависит от того, кем будут клиенты. Если бы это было все для меня внутренне, и я использовал WCF для всего, то я мог бы выбрать исключения, потому что они обрабатываются автоматически и с ними легко работать.
Если бы я думал, что у меня будут клиенты, кроме меня, особенно не клиенты .NET, я бы пошел на что-то гораздо более простое.
Если вы не знаете, то предположите, что у вас будут другие клиенты, потому что это будет болезненно менять, и это не так уж плохо для клиентов .NET.
Как минимум, верните какой-нибудь код ошибки и описание. Если вы не собираетесь работать с несколькими языками, они могут использовать описание - если им нужен другой язык, они могут использовать код для его поиска.