Well, maybe it isn't. That DETAIL line would report all the columns of the table, in their physical order. That doesn't necessarily have anything to do with the original INSERT, which --- if it has a column list, as this does --- can choose to target any subset of the columns in any order.
We can't very well order the DETAIL to match the original INSERT, since it's entirely possible that the complaint is about a column not even mentioned in the INSERT.
That makes sense to me. Maybe it would be feasible to label the failing row values with their column's name?
It also might be just my brain being paranoid -- not sure if others find this as confusing as I did.