Нет, table.sort как раз сортирует только значения, индекс тут уже вообще не важен. А ещё, в таблице words отсутствует числовой индекс. Это хеш. Как раз для подсчёта.
Как я тебе эту штуку отсортирую? Порядка тут нет, он определяется хеш-функцией. Добавление ключа может перемешать его нафиг, а вручную выставить позицию не получится.
Мы могли изначально выдирать слова в такой же список, но пришлось бы изгаляться с поиском перебором. Хеш быстрее. Это просто маленький трейд памяти на скорость, плюс понятность-интуитивность.
Так-то проганье можно худо-бедно натянуть за пол годика-годик, но только с нормальным стимулом и усердием. Когда параллельно требуют прогальных задач за конкретное фиксированное время - будет сложно.