RDA e l'errore "The table is not a tracked table"

C’è una cosa che ho detto durante il Workshop .netSide a proposito di RDA: prima di fare il Push dei dati di una tabella, bisogna fare il Pull della stessa tabella. La sequenza delle operazioni da svolgere è quella mostrata in questa immagine:

Questo però può non bastare. Stasera, pur avendo eseguito queste operazioni, mi sono imbattuto nell’errore “The table is not a tracked table“, tipico di quando si fa il Push senza aver fatto il Pull.
Stupito dall’inaspettato errore, mi sono messo alla ricerca di una soluzione. Tra i primi risultati che ho trovato c’era ovviamente la segnalazione del Pull….ma poi…mi sono imbattuto in questo post.
Effettivamente, nel mio codice, avevo omesso il TrackingOption nel Pull della tabella. Come si legge sulla documentazione ufficiale, TrackingOprion serve a…:

Questa proprietà specifica se SQL Server Mobile tiene traccia delle modifiche apportate alla tabella estratta. È possibile specificare il campo TrackingOn o TrackingOnWithIndexes per aggiornare la tabella estratta sullo Smart Device prima e successivamente reinserire i record modificati nella tabella originale di SQL Server. Quando viene specificato TrackingOn, i vincoli PRIMARY KEY vengono creati sulla tabella estratta. Quando viene specificato TrackingOnWithIndexes, i vincoli PRIMARY KEY e i relativi indici vengono creati sulla tabella estratta …[…cut…]…Quando il metodo Push viene chiamato dall’applicazione, SQL Server Mobile utilizza le informazioni di rilevamento delle modifiche per individuare i record inseriti, aggiornati ed eliminati nella tabella locale di SQL Server Mobile e propagare nuovamente tali modifiche a SQL Server.” 

Se non viene specificato un TrackingOption, il device non sarà in grado di tenere traccia delle modifiche da inviare al server e giustamente verrà sollevato l’errore.
Ora…mi resta solo da capire il perchè esiste un overload del metodo Pull che non richiede il TrackingOption Geeked [8-|]