So for merchants, would they generally keep an account for each person they deal with?
Yes. Then you can transfer coins between users with "move", and Bitcoin can automatically generate new addresses for users when the last one was used.
This is how most Bitcoin sites should work: When a user registers, you create a new account for them. Get the address they should pay to with getaccountaddress. Poll getreceivedbyaccount to see when they've paid. Notify them at 0 confirmations, and record the balance in your database at 6 confirmations (or less, depending on the size of the purchase).
Thank you, I sent 1BTC to the address in your signature