Creo que nunca volvería a utilizar POX. Si escribe WCF para que el servicio en sí sea independiente del enlace y se realice el enlace en los archivos de configuración, entonces WCF es bastante agnóstico sobre el transporte y el protocolo.Puede hacer SOAP, JSON, REST o su propia forma de serialización binaria. Todo esto está en el enlace. Internamente, WCF solo especifica qué se expone en términos de operación y contratos de datos (todos definidos por clase, método y atributos de propiedad). WCF le ofrece una gran flexibilidad en este sentido, con más por venir en 2010.
Desde el lado de Silverlight, WCF requiere que escriba un código de plomería. .NET frameowrk tiene las herramientas para construir el proxy en su proyecto de Silverlight, pero debe estar preparado para manejar todas las respuestas de WCF de forma asincrónica, y el proxy no puede detectar las excepciones lanzadas por el servicio.
.NET RIA Services oculta todo esto. Utiliza WCF debajo de las cubiertas, pero eso está completamente oculto. No tiene que escribir un código asíncrono. Define la validación una vez, principalmente de forma declarativa, y funciona tanto en el lado del servidor como en el lado del cliente. La versión 1 se destinará a Silverlight, por lo que no obtendrá la versatilidad para utilizar el servicio en otro lugar. Se supone que ese alcance se ampliará en versiones posteriores.
No sé lo suficiente sobre ADO.NET Data Services para comparar. Sospecho que la respuesta dependerá de si desea exponer sus datos a algo más que el uso de Silverlight.
.NET RIA Services parece la dirección en la que me gustaría ir (analizando estos problemas yo mismo, con una gran aplicación en mente). Los grandes problemas para mí serán implementar una gran colección de funcionalidades en la capa de servicios y no poder codificar directamente en la capa de acceso a los datos (tenemos que poder ejecutar en SQL Server u Oracle).
Usar WPF en lugar de Silverlight cambia todo, dependiendo de dónde residan sus datos. Es como la vieja pregunta de Winforms vs. ASP.NET. Con WPF, está creando una aplicación cliente de Windows, y no necesita utilizar ninguna forma de interfaz de datos basada en el servicio, a menos que su acceso a los datos lo obligue a hacerlo. Igual querrá separar datos y negocios del código de presentación, utilizando MVVM, MVC o MVP. Aparte de eso, tiene la opción de tratar el acceso a los datos como una capa, en lugar de un nivel independiente wholy.
¡Ejemplos realmente útiles! Gracias por esta excelente respuesta. –