Yes it works like that. If the order has an invoice address but no delivery address, then when you create the delivery record, it copies over the invoice address and this is what prints on the delivery note.
Hi, Paul.
Sounds like you're talking about REST API. And that your are overwriting data with older values if B managed to read record before A finished to update it. Classic conflict resolution ...