Возвращать коды ошибок с веб-службами так же плохо, как и в целом, и по той же причине - если вам требуется, чтобы все вызывающие абоненты проверяли коды ошибок после вызова службы, то некоторым вызывающим абонентам не удастся сделай так.
Вы должны бросить исключения в сервис. Эти исключения будут превращены в ошибки SOAP. На клиенте они будут отображаться как исключения (по крайней мере, для клиентов .NET). Если вы решите отобразить свойство Message этих исключений, это ваше дело. Если вы решите отобразить его, то вы также можете его локализовать - на клиенте.
Учтите - в противном случае вы должны сообщить службе культуру клиента, просто чтобы служба могла отправить локализованный текст обратно клиенту. Лучше просто хранить эту информацию на клиенте.