Currently <head>, if present, must be the first child of a <div*>, a <table>, or a <list> but not of a <figure>. This is inconsistent. While some argue that TEI need not support encoding whose XML serialization corresponds to the order of text as it appears in the source document, we currently support this for <figure> but not the others, which needlessly complicates the life of those who wish to encode in the order that text appears on the page.
Here's a straightforward example. If a scholarly text contains "figure 1" which is actually a list or a table, for which the heading "figure 1" appears below the list or table, there is no way to encode the <head> after the <list> or <table> even though this is easier to render and easier to process, especially if "figure 1" crosses page boundaries. While one could of course wrap the <list> or <table> in a <figure> element, which does allow <head> at the end, I believe this would be tab abuse committed against <figure>, which as explained in section 14.4 is meant for "graphic images within a document".
The case for doing this in div* as well is harder to make, but I imagine less conventional texts sometimes have headings that don't appear in the "right" place in the source document.