I have (unsuccessfully) tried to use them, but I am terribly comfortable with them.
I think the concept of accounts is probably better left to accounting software and don't really fit into the scope of what the bitcoind should be doing. Bitcoind is not (and does/should pretend to be) an accounting program.
If it were up to me the developers should just cut them out and concentrate on more important things, perhaps extending the [comment] [comment-to] system to work with incoming transactions.
^lol, didn't see so much contradictions in the same post until now. How isn't bitcoin an accounting software when it has to account for all the unspent inputs available to it?
Accounts work as ribuck said, for individual user accounting and they provide allot of features when used correctly. Like taking the burden of accounting of your main database and maintaining correct user balances, in case of chain reorgs. You can even have a complete website or app failure and no backups of the main database, but the coins are kept intact in every user's account with only one backup of wallet.dat.
I don't have the time to write a complete documentation, but I can assure you bitcoin accounts are useful and whoever tells you the opposite hasn't got a clue what are used for.
Sorry for the rant, I just turned my back for a moment lol
@weex learn how to "move" coins between accounts and you will see how easy the accounting gets, with no database overhead and it just works. Start using queues in case you want to have your app work smoothly and prevent accounts going negative if it isn't desired. That's all, now keep developing your app, bitcoin is all set-up.