Под кошельком понимается весь wallet.dat
Да.
а под аккаунтами отдельные адреса?
Нет, под аккаунтами понимается accounts в bitcoind, что-то вроде виртуальных кошельков в пределах одного wallet.dat.
Тогда что мне помешает удалить из wallet.dat адреса с отрицательной суммой?
Их отсуствие. При нехватке средств на аккаунте в транзакции используются адреса других аккаунтов, но на каждом конкретном адресе не может быть минус, соотвественно и сумма баланса всех аккаунтов не может быть отрицательной.