In my web services I use simple objects that get serialized. In the services layer, I take the data from the simple objects received from the web service and map them back to llblgen objects and use a data access adapter to save the data.
When the data is leaving the web service, I have the web service invoke the remote services layer and convert the fetched llblgen objects into simple objects that get serialized and passed to the client consuming the web service.
Yes its extra code, but web services just arent there yet for some things (like abstraction and interfaces.) Another thing to note is that consumers of my services are typically VERY scalled down when compared to the consumers of the remote services layer.
So in essence, I code it like a big onion that has many layers, each layer servicing different consumers and serving different purposes.