Perdonami, ma bisogna distinguere il backup fatto con app esterne (che spesso richiedono root per funzionare) e backup effettuati dal backup manager di android.
Nel primo caso viene fatta una copia fisica del db delle impostazioni e poi tale copia viene sostituita al nuovo db in fase di restore. Se ci sono differenza di struttura db (ma questo dipende più dall'applicazione che dalla versione di android) o di versione di sqllite (e questo invece dipende dal sistema operativo), l'operazione potrebbe in effetti non essere pulita e portare a malfunzionamenti.
Nel secondo caso è il backup manager, un servizio del sistema operativo, che recupera l'applicazione dal play store, ne richiede l'installazione e poi ne richiama il restore (tramite un metodo onRestore() del backup agent). Ora, nessuno impedisce ad uno sviluppatore di implementare male l'onRestore(), però questo è indipendente dalla versione del sistema operativo, riguarda la singola applicazione e, in caso, si deve risolvere con una semplice pulizia dei dati dell'applicazione. Per contro se il metodo è implementato correttamente, non fa altro che ripercorrere le impostazioni contenute nei dati di backup esattamente come se lo facesse l'utente a mano.
Riassumendo: il backup, se gestito in modo corretto, non è una piaga di android. Anzi, il backup manager con il restore automatico è un ottimo servizio che fa il suo dovere e che, IMHO, non è abbastanza sfruttato dagli sviluppatori....
Maggiori info sul backup manager di android le trovate qui: Data Backup | Android Developers