I still like to convince myself, though, as to why this approach makes sense over the traditional OO / encapsulation approach. My current line of reasoning is that while having well defined services and interfaces can help organize a software system, the actual arguments and return values of these end points are really better thought of as values - and the expected structure of these values can certainly be part of the API. You just don't force people to construct and destruct objects for everything you are passing around.
A couple of related resources on this topic:
"Stop writing classes" from PyCon http://www.youtube.com/watch?v=o9pEzgHorH0
Rob Pike's reflection on using data vs OO:
https://plus.google.com/101960720994009339267/posts/hoJdanih...