Porque o bitcoind registra os inputs para cada account/address, mas consolida os outputs para a wallet como um todo.
Quando voce dá o getbalance (sem parametro), ele soma todos e dá o saldo correto...
Se você der um listaccounts, olhe que o primeiro 'account' é "" e deve ter um valor negativo no seu caso.
O getbalance de uma account especifica vai bater com o valor daquela account no listaccounts... mas a soma total não fecha se você nao subtrair a quantidade de BTC que saiu da account "".
É isso que você está perguntando?
Isso mesmo Person