Il punto è un altro.
Quando usi \include vengono generati i file aux per ogni file incluso, che restano disponibili per i riferimenti incrociati anche se non compili il relativo sorgente.
Con \input NON vengono generati i file aux per ciascun file introdotto con \input, ma i riferimenti incrociati vanno a finire nell’unico aux relativo al main file. dunque se compili un solo file introdotto con \input i suoi riferimenti, i comandi \newlabel che servono per i riferimenti incrociati, vanno in quell’unico file, e alla secondo compilazione li puoi usare e il programma di composizione te li risolve, mettendoci il numero giusto e magari, se usi hyperref ti mette crea anche il collegamento ipertestuale, ma i newlabel dei file che non hai introdotti non ci sono da nessuna parte, quindi non vi puoi fare riferimento.
Ecco perché devi usare l’accoppiata di \includeonly e \include e non devi usare \input; \includeonly ti permette di eseguire la compilazione selettiva elencando solo in file che vuoi includere, come dice chiaramente il nome, mentre \include, il cui statement non deve venire commentato quando si riferisce ad un file da non ricompilare, ordina però la lettura del suo file aux così che i suoi newlabel restano disponibili per i riferimenti incrociati.
Quando ti ho chiesto se avevi capito la differenza fra i due metodi di inclusione, avevo il sospetto che non l’avessi capita; il tuo messaggio a cui sto rispondendo mi dimostra che non l’hai capita. Spero che la mia spiegazione sopra ti aiuti a capirla.