Anybody's code that relies on the current functionality? (Although I'm not clear what revXML handlers use that particular libxml function as I think revXML uses it own traversal of the tree to get contents in various ways).So my question: is there anything that this could mess up? Concatenating the data elements all together with no delimiters doesn't seem like a useful way to return the data elements, so it's hard for me to imagine a situation in which anyone would be currently relying on this.
In this case, getting the elided form of all a nodes contents might be useful in specific circumstances - for example if the XML contains some sort of styled-text representation than an elided version of the content will give just the text without the formatting tags.
If doing what you have suggested would be useful, it should probably be exposed as a separate function - one that uses the libxml functions that are available to get the same effect - in general, modifying third-party libraries should be avoided wherever possible (limited to adding functionality that can't be gained by the API they expose - libzip has some modifications to add a progress callback, libxml has a small modification to ignore namespaces and libcairo has some modifications to generate PDF metadata and share image data).
However, in the case you are giving above, its using XML as a database type structure, so really you'd expect to know what elements are there to traverse and do so directly.
In general, we take a policy of 'do no harm' in the sense that functionality is not changed unless it is strictly erroneous or it absolutely has to be changed in order to support a feature and the benefit of the feature far outweighs the potential backwards compatibility issues that might ensue.