Looks as if the docs are just out of date.
The code which produces the resulting array is in the function _index_fields()
in numpy/core/_internal.py
.
There was a change between v1.5 and v1.6 on March 22nd, 2011 from...
new_dtype = [(name, dt[name]) for name in dt.names if name in fields]
...to...
new_dtype = [(name, dt[name]) for name in fields if name in dt.names]
...so the order of the fields in the resulting array changed from the order specified in the original data type to the order in which you specified the fields when you accessed them.
However, the section of the documentation cited in the OP was added on March 1st, 2011, three weeks prior to the change.