"So by (good) design it slurps a whole XML file into memory."
Okay, now I traced each line of the source code. I think we are lucky that the XML::Simple module didn't follow your good design and slurp the file.
Slurping a whole file, in order to use a SAX::Parser? Good he/she didn't do it.
To be frank with you, the point is really not whether XML::Simple slurp the whole file or not, that's not something you or me can change, it was just done in that way, but it is a very poor judgement to praise "slurp a whole file" as a good design in this context.