When I faced the similar problem recently I considered to go with a simple wrapper and see how things going, here it is:
https://gist.github.com/yevgenko/8915506
I now have a model which responsibility is to provide interface to the SOAP service, i.e. only necessary methods.
So, the interface is designed just to success the domain model needs, but relies on the same client wrapper.
During development I applied few changed to the original wrapper to make it easiest to work with, for example replaced original response object with the body hash which
I found easiest to work with in context of application, and added some authentication helpers.
As the next step I'm going to see if anything also could be unified/simplified, moved to wrapper and then extract and release the wrapper as a client library in order to start getting some feedback ;)
p.s.
I just googled the topic and found the following article, perhaps might be helpful too: