Modification of posted transaction & Recalculation of AVG rate, second landed cost and items sold


I noticed that ERPNext modify the previous posted transaction in general ledger, which is not standardized way and it doesn’t correspond to booking norms.

Is it possible please to generate a new journal entry when we cancel an invoice, and to not create the opposite amount in the original invoice journal entry?

Also for the landed cost, when we apply a landed cost to a specific reception, then we sold a little from this reception. When we receive a an additional costs we create a second landed cost for this reception, ERPNext actually modify the previous stock journal entry transaction, recalculate a new average rate, and make this new average rate in the cogs account of the sales already made.

Is it possible in that case to create a new journal entry for the reception and not changing the previous posted reception, for the items sold the difference of the new average and the average in the moment of the sales will be posted in another account which we have to provide in parameters?