Prevent invoices from being changed
Once an invoice has been "issued" accounting practice in some countries does not allow for the invoice to be modified.
I know from a technical perspective that it's almost always possible to change a invoice as long as it's stored electronically, however lawmakers are not technical people and certain leeway is generally accepted in the implementation of this law. Usually the legal system accepts as a good enough solution a system that does not facilitate the change, even if it does not make it completely impossible.
Today's implementation of invoicing in WHMCS however does not just facilitate the changing of sent invoices, it actually makes it itself. Client data needs to be stored with the invoice data, today the invoice data just points to the client ID, if the client data is changed then so is the invoice data for historical invoices. This is not ok.
The usual implementation is system is to have a "invoice sent to client flag" and once that is set the invoice is saved in it's total and can not be changed easily though the system. Some system enables you to "uncheck" the flag and then change the invoice.
I know there are some workaround for this by saving the PDFs of the invoices in a 3rd place or by using the fixed PDF data plugin available as a addon, but they are workarounds and does not solve the basic problem in the system.