Penso che l'operazione di inserimento dovresti farla direttamente durante la visita inorder, per fare ciò io passerei alla funzione inorder come argomento secondo argomento 'visita' un puntatore ad una funzione che fa l'inserimento:

void insVisita(nodo *n){
if ((n->numMatricola)>654321)
....codice per fare l'inserimento di n nella struttura
}

Quindi ti basta chiamare:

inorder(r, insVisita);


per ottenere l'inserimento degli elementi durante la visita.

Nella tua funzione sbagli già a livello di tipi perche invochi inorder su due oggetti nodo*, mentre il secondo argomento di inorder è un puntatore a funzione.