Because, to me and without any hard numbers, wanting to keep trees in-memory kind-of sounds like premature optimization. FWIW, on my machine reading a 60k XML document from memory (string or StringIO) takes cElementTree ~30ms and serializing it back takes roughly the same. While 60ms/request is not insignificant, I'm not sure it's worth the complexity you're trying to introduce.