Ответ 1
Когда вы копируете движок или дистрибутив, гарантируется, что оба двигателя (или распределения) будут генерировать одну и ту же последовательность значений с этой точки.
Для двигателей стандарт требует, чтобы E (x) создавал двигатель, который сравнивается с x (26.5.1.4, таблица 117). Двигатели сравниваются одинаково, если бесконечная последовательность будущих вызовов к движку выдаст те же значения (26.5.1.4).
Для распределений они требуются (26.5.1.6p4) для удовлетворения требований CopyConstructible (таблица 21). Это требует, чтобы созданный объект был эквивалентен оригиналу. Требование к распределению, сравнивающемуся как равное (26.5.1.6, таблица 118), состоит в том, что они имеют одинаковые параметры, а будущая последовательность генерируемых значений (при использовании эквивалентных двигателей) одинакова.