wcf server/client completly independent
<what you would expect from a single stack>
err, wcf is completly independent on the underlying delivery mechanism. calling a soap service, a .net service, a named pipe or iven a rest endpoint is almost identical from the callers view when using wcf.
the only thing you have to switch out is the binding object (and in the case of a rest service add an attribute saying where the arguemnts to the method goes in the url)
all the underlying stuff is encapsulated in the binding object.
the same holds true for hosting. if you want your spiffy .net service to become a soap service the only thing you have to do is swap out the binding object.
this can even be done with the built in config system so you dont even have to recompile your code..
so, if you feel the built in soapbinding isnt good enough, make your own, change 1 line in your config files and bam, your wcf server/client uses your own soap(or what ever else) implementation instead
dont belive me? check out msdn..
http://msdn.microsoft.com/en-us/library/ms733027.aspx