We're currently having a hard exporting module items for accounting purposes. Agents have the power to temper with and re-open any item without restrictions.
Agent-1 closes any module item
The accounting exporter does its job, invoice sent to the customer
[optional] Agent-2 reopens the item
Agent-2 adds an item entry and closes the item
The accounting exporter does its job and sends the same invoice with a bit of extra time to the customer.
Of course it would be an option to calculate the delta and invoice only that part, but that is not what the close state of a module item should be - in our eyes - and it would cost us more and more computational time/resources. We want to protect our agents from making mistakes like altering closed items.