About XML: you allways need to parse the XML object through the specific methods like firstChild, nodeType, nextSibling and so on. The XML.parseXML() method just create an XML object from a string argument. That's the reason because you even need a parse rotine to walk through the XML objects, and always need an extra effort to send/receive data in XML format. For locally exchange (that's sharing data between my database or my own server-side services) I do not use XML. Anyway, to share data with other services or sites, is a good choice. Also there are alot of components that use XML as source, because as general purpose components, XML is a clear source of data.
The xmlnitro is a base class writed by Branden Hall intended to faster the perfomance of XML parsing in Flash 5, and also to add an important functionality that is built in in MX: ignoreWhite. The perfomance of XML in Flash 5 is really bad, but in Flash MX becomes highly better.
// XMLnitro v 2.1 - Branden J. Hall - Fig Leaf Software - October 1, 2001
//--------------------------------------------------
// This file simply replaces the built-in parseXML
// method. In doing so it increases the speed of
// XML parsing 70-120% (dependent on file size).
// In addition, the ignoreWhite property now works
// in all versions of the Flash 5 plugin and no
// just the R41/42 versions. In order to do such
// this parser removes all text from mixed content
// nodes (i.e. nodes that contain both child nodes
// and child text nodes). This code is Flash 5
// specific so it makes sure that the user has only
// a Flash 5 plugin.
//--------------------------------------------------
About amfdata, I think also is the best choice to share complex data, and faster since it uses a native Flash format that don't require a parser routine. Tipically queryng a database or calling services are good choices. Anyway, to load a couple of variables, the LoadVars object is fine.
Jorge