I just finished helping a customer where their WCF performance was ONLY on par with WSE. After a bit of slueth work it turned out to be in their implementation the WCF proxy was getting created (and destroyed) for every message.
(Imagine open a database connection for every insert)
Paul Glavich helped me on this and he did a great blog entry on the best way to share the proxy.
Also for more general information on WCF performance check out the MSDN article: