Is MySQL query optimizer still dumb? Still super slow very complex queries?
All query optimizers are sometimes dumb. PostgreSQL is in most cases less stupid. Some of the later PostgreSQL SQL functions (window functions, recursive queries, etc.) are very efficient, but if you have a dumb ORM, they may not be used.
Project size: Say the order system from about 10-100 orders / day to the account, several thousand accounts, in the end, each can have from several hundred to several thousand users.
Doesn't sound so loud - well within reach of a large box.
Better: future proof and flexibility when it comes to growth and changing requirements.
PostgreSQL has a strong development team with an extended community of contributors. The release policy is strict, with corrections - only in point releases. Always keep track of the latest version 9.1.x for fixes.
In the past, MySQL was a little more relaxed about version numbers. This may change due to the fact that Oracle is responsible. I am not familiar with the politics of various forks.
Performance is also important in order to reduce hardware costs.
I would be surprised if hardware were the main component in a project of this size.
In addition, the availability of skilled labor will be a factor.
This is your key. If you have a team of experienced Perl + PostgreSQL, hackers are sitting idle, use this. If your people know Lisp and MySQL, then use this.
OLTP or OLAP: OLTP
PostgreSQL has always been strong in OLTP.
My personal point of view is that the PostgreSQL mailing list is full of polite, helpful, knowledgeable people. You have direct contact with users with Terabyte databases and hackers who created the main parts of the code. The quality of the support is really excellent.