Having intelligent units with the GUI and UI created for them (health screen, thought screen, posession screen etc) with the thought and personality system was a goal for intelligent creatures by Toady, the rest of the animal kingdom wasn't initially defined or expanded on, so you could reasonably say it was initially a low level concern (at the moment its not game breaking but pretty instrumental to lots of bugs/petty grievances) or Toady simply wasn't aware about it.
GUI does not dictate behavior. There are many, many, many cases in DF where stuff is happening that you have absolutely no way of seeing.
Feature means terrain feature, not game feature. Stuff like magma pools and lakes. Features are not "counted into world population". the most you can really say is that they're adjacent.
In fact... you're reading the XMLs completely wrong. A line ending with /> means that the next line is independent of that one.
Also, naming variables the same between two independent data structures does not cause any issues with code. Please try to understand basic scoping before making grand suggestions, it relieves a lot of frustration on every side.
And what we do with the structures XML has absolutely nothing to do with what the game itself does. It's descriptive, not prescriptive. Changing around structures will make DFHack wrong, not make DF right.
Describing the nature of the game and loosely interpreting and trying to make sense of it all is a good place to start, my own approach is to find a value and keep referencing where it eventually pools into in order to learn the relations it has. Shake the chain and see what rattles. In all cases even i'd agree my 'solution' is flimsy and non-practical but there's no harm in trying. In hindsight of your constructive criticism i won't be posting any more XML code here but i will keep looking through it privately for connections and read up a bit more about the C++ system, which i was doing anyway.
The GUI (game user interface when player are involved) or UI (menus etc) is what the player interfaces with, i am aware its a feature whether it's background or not, but toady in his initial release of the mind system he'd be working only only tailored it for the intended audiences of intelligent creatures that benefited from it without making code to discriminate or only affect that class. Nothing was really mentioned about the fact since but bug reports like
http://www.bay12games.com/dwarves/mantisbt/view.php?id=7369 started turning up regardless. There is a bug in our midst somewhere or some permeating issue.
I argue that animals & plants are 'map features' because they are referenced in population ID in relation to the biome sites they are represented in are part of features. You cannot generate a jungle map feature or a underground global feature without also having animals/plants relevant, and the population id reads off the features and its co-ordinate to find all the animals/plants within it as part of a background tally of existing units in the feature to the best of my applicative knowledge (feature defined jungle = jungle creatures & plants are put in = gets population numbers from raws and uses that)available for that site if they aren't in it already (plants being always present)
Also keep in mind that some of the structures in the XML may be wrong - most of the names, whether type names (structs/classes), variable names (struct/class members), or value names (enum members), are our guesses, and some of those guesses are more accurate than others.
A very small number of things (such as all of the bits in unit_flags1 and unit_flags2) are named 100% accurately because Toady told us what they were named, and all classes that have virtual methods are also named accurately because they're visible within memory (via RTTI). Everything else is our best guess, and some of those guesses are already known to be wrong but we haven't gone back to change them because it'd be a pain (e.g. "timed_event" is almost definitely "world_event" based on the messages that appear during load/save, "manager_order" is likely "work_quota" for the same reason, and "ui" is probably "plot_info" based on an error message that never happens during gameplay but is visible in a disassembly).
This is very true, and i have kept this in mind, and as i've mentioned before, its a imperfect community effort for DFhack but a generally trustworthy one for looking into. You could also take a pinch of salt in saying that some of the things that i've mentioned (like entity_population/various population references using atleast 3 different names for the same value/little inconsistency in proper identification) could be typos.