L'onchange andrebbe usato solo per feedback al client, e non basarsi su di esso per ricevere valori corretti. Cioè se il tuo campo 'totale' è un float che dovrebbe essere la somma dei campi 'valore' delle righe, dovresti farlo come campo funzione per essere sicuro che sia effettivamente il totale, e non basarti sull'onchange (che può essere bypassato) perchè "arrivi" il valore giusto quando l'utente salva.
Quindi il campo 'totale' un fields.function con una funzione che sommi i campi 'valore', più eventualmente, se vuoi, un onchange per fare in modo che il campo totale venga aggiornato "live" sul client e non solo al momento di salvare.
Usando le nuove api e il decoratore '@api.depends' l'onchange viene "creato" automaticamente dalla funzione che usi per campo funzione, quindi ottieni le due cose scrivendone solo una.