I spent a long time learning how to customise WCF from the point of view of adding authentication etc over a RESTful service; I built some custom service hosts, then added the ability to use an IOC container to actually create the service instance etc etc.
We have iPhone/iPad apps plus some other gadgety-type things (technical term!) that now use these (XML on the i-platform, JSON for browser-based) and I am very pleased with the performance and the ease with which we can add new operations etc.
I learnt all the foibles of the DataContract serializers (and now use them in isolated cases to read/write objects outside of WCF) and after that steep learning curve, but now that we have them I'm very happy with them all.
Now we have a series of new Web projects for which I jumped at the chance of using MVC - and have been suitably impressed with that; the model binding, in particular, really kicks arse.
I'm now looking at similar RESTful apis for these web projects (they will all be similar sites but different branding and minor changes in business logic depending on custom need). Originally, I expected that all this work on WCF would stand us in good stead - but MVC has its own development path for RESTful XML/JSON and I'm now caught between the two.
If you're writing an MVC site would you ever use WCF to implement its REST API?
I'll throw out one argument for using WCF - that, properly written, it can be isolated to run as a windows service without the need for a Web Server. However, that seems like a desperate case!