Внутри таблицы 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.