В данном случае -- ни за чем. Если decltype не сможет вывести тип,
то раскроется верхний шаблон. Типовое применение void_t, когда ему
пихают несуществующие выражения и типы без decltype. Если так
сделать с твоим HasSuperF то будет ошибка компиляции, а с void_t
сожрёт и не подавится (на cppreference первый пример применения
void_t).