We started integrating WP in 2007-2008... today, I would venture to guess that 90% of the sites we manage use a WP backend, including a few smaller commerce sites. Here is what we learned.
I agree that the editor is challenged for code issues... but its not a deal breaker. I actual like the simplicity of it and it forces me to keep sharp on my html skills by editing in the code view most of the time.
1 - Get a dedicated server. The slowdown on a shared or VPS is at the database. We have 1 dedi running several (15-20) WP installations, and they churn along at -2 second load times nicely. 3-6 was the best we ever got on a VPS, 4-8 on shared.
We used to run the W3 cache plugin, but now only use the "Force GZip" plugin.
1A - Keep your database clean with an optimizer type plugin (or do it yourself) that weekly, backs it up than cleans up scuttle from the database.
2 - Security - Never load more plugins that you need to run the site, and always limit access to your wp-admin directory within the htaccess. We deny all but 3-4 IP addresses from accessing the admin sections.
AuthName "Access Control"
deny from all
#list your allowed ip's here
allow from 12.345.678.89
allow from 12.345.678.33
2A - Delete all unused themes and plugins... Even if they aren't active!
3 - Using the wp-config.php file, turn off post revision tracking.
4 - If you are using WP as a CMS, use it as a CMS! We use pages for 75-80% of our landing page content, and only use the post features to compliment our pages. We use .html as a file extension on pages and posts... and take GREAT care to make sure the index taxonomy is correct from page to category of post when used.
For example, if we had a "Resource" section of the site, that showed a landing page (Resources" and then we used the blog post section to write articles about resources, it would be:
So our landing page would be: site.com/resources.html
and the articles would be: site.com/resources/article-title.html
A bit of hand-rolled wp-query code allows us to relate pages to catid's of posts, and show them under, or within the content. We also use tags for this.
5 - Tags and Categories are always noindexed for us. The PAGES are our primary landing areas, and the tags and categories ultimately support them.
6 - Clean up your themes to the N'th degree. We use a speed tool that waterfalls the http requests so you can really clean it at the file level.
7 - Always use sitemaps, both xml and reader sitemaps.
8 - Favorite admin plugin, Ozh Horizontal Admin Menu plugin by Ozh. It relocates the admin menu to the top of the site and frees up much needed horizontal space for writing.
I'm sure there is much more... but its time for dinner! :-)