No, nelle funzioni decorate con @api.onchange non stai lavorando direttamente sul model ma su un record temporaneo, poi le assegnazioni fatte su questo record vengono passate al client quando esci dalla funzione, e solo quando salvi sul client i valori vengono effettivamente salvati nel DB (tranne, appunto, quelli readonly).
Ovvero, 'self' nelle funzioni decorate con api.onchange non è il record nel database (anche perchè potrebbe non esserci ancora) ma semplicemente una rappresentazione python dei valori client.