You created labels (accounts) for some addresses, and then you received bitcoins with them. Then you spent them without specifying a label (account) that they should come out of, meaning they were deducted from the "" account.
Accounts are just an internal bookkeeping system. The actual transactions in your wallet don't carry the tags with them.
Now that's new to me. I thought, by assigning some address to an account,
I'd essentially tell the satoshi-client to consider any tx-endpoint (input or output)
involving that address (no matter how or where it was generated) as belonging
to that account. Kind of like partitioning the wallet. (I didn't really understand
how "move" worked in that model, but when one is new to a concept then
perceived inconsistencies are not immediately minded, but sometimes kept until
it becomes clear how to really resolve them.)
As it seems to me now, each transaction's money itself is associated with an
account. Received outputs are associated to the respective address's account,
but spends (at least, those not generated by the satoshi-client itself) get booked
on the "" account. And "move" may be used to update the inter-account balances.
Getting money to one account and paying from another (already negative
balanced) account now seems oh so "real-world-money"-ish to me ;-)