Det är tyvärr ingen rekommenderad lösning att använda sig av varken iframe eller ajax(javascript) för att visa data på en sida. Speciellt inte ur sökmotorernas perspektiv. Om du ska köra med AJAX så borde du ha en vettig "fallback" utifall att användaren inte har javascript aktiverat. Sökmotorer har inte stöd för javascript och kommer inte kunna indexera innehållet korrekt, detta kommer leda till att sidan får det svårt att klättra i sökmotorerna.
För att svara på sista frågan:
Det är ganska onödigt att lägga alla sidors innehåll i samma XML-fil, det blir onödig trafik. Det jag skulle göra om jag var du (förutsatt att du kan asp och/eller php) är att skapa ett php/asp-script som plockar ut information ur en databas och spottar ut det som en XML-fil, med bara den datan som behövs för stunden. T.ex "exempel.php?sida=artiklar" för att spotta ut en XML med all information som krävs för sidan "Artiklar" etc.
Hoppas att jag inte har rört till det allt för mycket...