Я не уверен, что согласен с вашей предпосылкой, что вы "должны" использовать бизнес-логику вне клиента. Вы должны переместить бизнес-логику за пределы уровня пользовательского интерфейса, но обычно до того, как вы подключитесь к внутреннему веб-сервису, осталось еще несколько клиентских слоев. Например, типичное приложение Silverlight основано на модели MVVM, которая предписывает View, в котором нет бизнес-логики, ViewModel, который имеет довольно хороший кусок проверки и бизнес-логики, и модель, в которой есть все остальное. И все это на стороне клиента.
С другой стороны, вам действительно необходим уровень бизнес-логики на сервере. Вы не можете полагаться на клиентское приложение, чтобы отфильтровать все неверные данные: кто-то может использовать старую версию клиента или другой клиент полностью, или пытается взломать вашу систему.
Другими словами, в идеале, ваша бизнес-логика и проверки должны выполняться как на клиенте, так и на сервере: на клиенте, потому что вам нужна оперативность, и на сервере, потому что вам нужна безопасность. Вопрос в том, как это получить, и нет идеальных ответов.
Одним из подходов, обычно используемых в приложениях Silverlight (я менее знаком с Flash), является использование служб WCF RIA, которые позволяют создавать проверки в одном месте, которые выполняются как на клиенте, так и на сервере. Даже если вы не используете платформу WCF RIA Services, вы все равно можете получить почти тот же эффект, связавшись с исходным кодом ваших классов проверки / бизнес-логики как на клиенте, так и на веб-сервисе - это больше работы, но все же, вероятно, меньше работы, чем написание ваших проверок дважды и их синхронизация вручную.