Developers of GnuCash and other accounting programs clearly have zero knowledge of good existing accounting systems. But they can be forgiven, since there are NO good accounting systems on the US market.
That's right. Even QuickBooks is crap, it's a highly polished crap, but still crap. It's not configurable and its API is a PITA. It's also unreliable and slow.
A good accounting system should provide:
1) Way to construct custom forms and easily link them to entries in the accounting system.
2) A _temporal_ database for entries. I.e. it should be possible to do things like: "how had our accounts looked at 3:00PM June 11, 2011?", taking into account backdated documents and corrections.
3) A set of standard forms (which is actually the easiest part) with a way to construct new ones.
4) Easy way to integrate with logistics and warehouse management.