Ciao, anch'io in visulaizzazione uso più funzioni, non vedo dove sia il problema. ne richiamo una e tutte le altre vengono richiamate a cascata nella prima.
Al limite se vuoi una funzione "unica" puoi incorporare le funzioni tutte in una sola ex (funzione IEGo dentro funzione vis:
codice:
function vis(a){
	function IEGo(){
		if (xml.readyState == 4) {
			Leggi();
		}
	}
	
	try{
		if (document.implementation && document.implementation.createDocument){
			xml = document.implementation.createDocument("","",null)
			xml.onload=Leggi
			xml.load(a);
		}else if (window.ActiveXObject){
			xml = new ActiveXObject("Microsoft.XMLDOM")
			xml.onreadystatechange = IEGo;
			xml.load(a);
		}
	}
	catch(e){ alert("Errore nella funzione vis().\nERRORE: "+e); }
}
o al limite puoi sostituire la chiamata alla funzione con il codice della funzione stessa come in questo caso (questa è la funzione leggi + la funzione leggiArrayDati)
codice:
function Leggi(){
	try{
		var Nodo = xml.getElementsByTagName("elementi")[0].getElementsByTagName("item");
		 
		for (i = 0 ; i < nodo.length ; i++) {
			arrDati[i] = new dati(getValue(nodo[i],"etichetta"), getValue(nodo[i],"valore")); 
		}
		
		var testo = "dati:<br\/>";
		for (var i = 0 ; i < arrDati.length ; i++ ) {
			testo += arrDati[i].label+"
";
		}
		document.getElementById("visDIV").innerHTML=testo;
	}
	catch(e){ alert("Errore nella funzione Leggi().\nERRORE: "+e); }
}