потому что, например, содержимое внутри хэш-таблицы может зависеть от рандома. А для верифицируемых вычислений нужно, например, считать хэш от памяти.
Может, но не обязательно. Вообще, если у тебя детерминированный рандомный хэш, который можно вычеслить во время компиляции, то тебе не нужен хэш вообще - ты можешь просто сгенерировать два массива, один из которых будет индексировать второй