Right now there are 3 ways to control ordering of the path visitation in the API.
ARBITRARY - sensitive to incoming path order from CLDRFile
NESTED_GROUPING - sensitive to element order within XML files
DTD - consistent and isolated from ordering of paths in sources
The original reasons for having multiple choices was:
1: Concern of ordering mattering for precise output (some old code was clearly working in whatever order the XML file was in)
2: Concern over performance and cost of the somewhat complex DTD ordering.
However it appears that switching all mappers to use only DTD order:
a: makes only a small difference to the timing (10-20 seconds over 13 minutes)
b: doesn't affect actual output (comparing on a 35.1 baseline)
Thus I can remove API code and tests in the ICU side if I just remove the ability to specify ordering at all (i.e. remove the PathOrder enum completely).