Почему в семантичной верстке html порядок тегов table thead, tfoot, tbody?
Внутри таблицы TFOOT должен идти перед TBODY, чтобы браузер пользователя мог отобразить TFOOT до получения всех остальных строк из TBODY, которых может оказаться очень много.
www.w3.org/TR/html401/struct/tables.html#h-11.2.3
Представьте, что у вас очень большая таблица:<table>
    <thead>
        <tr>...</tr>
    </thead>
    <tfoot>
        <tr>...</tr>
    </tfoot>
    <tbody>
        <tr>...</tr>
        <!-- Ещё тысячи строк... -->
        <tr>...</tr>
    </tbody>
</table>
В таком случае, браузер быстренько отобразит пользователю THEAD и TFOOT (обычно они не содержат много строк), и пользователь будет ждать, пока не загрузится остальная часть строк из TBODY. Если бы TFOOT шёл после TBODY, пользователю пришлось бы ждать полного отображения TBODY и лишь затем он бы увидел TFOOT.
В HTML5 допустим и такой порядок: thead, tbody, tfoot.
Семантика здесь не при чём. Сначала загружаются верхние и нижние заголовки таблицы, а потом уже — между ними её тело.