Accounts makes sure that the changes are safe in the sense that it will not let you make changes that cause run-time errors. If you define a new attribute that needs a new field in the transactions then it forces you to define that field, too. Accounts handles schema migration in the sense that you can change the definition of a transaction or an account. These definitions take place at a particular point in time. Transactions with an effective date before the transaction definition is changed will use the old definition, while those with an effective date that is afterwards will use the new definition.
Accounts makes it every easy to build a distributed system.
Different accounts can be on different machines. It easily handles networks disconnecting and reconnecting, and machines crashing. At least, the normal operation of Accounts handles this easily. We are still figuring out how to handle schema changed, i.e. programming, in a distributed system. Accounts is currently only a research prototype, and many of the features I have described are not yet implemented.