a) non sono gusti personali: programmare a global equivale a programmare male
b) non è una sottigliezza passare una variabile per riferimento. alla funzione per far si che la funzione stessa la modifichi.
Cmq la risposta al problema era: c'è qualcosa che non và nella logica della funzione, perchè se questa deve tornare piu di un dato vuol dire che fà troppe e cose e probabilmente le fa male