Um bom uso da desestruturação é quando você quer clonar um objeto, algo muito util em React, pois mudanças nas propriedades não são percebidas e portanto não são renderizadas.
Exemplo:
const [ cliente, setCliente ] = useState({
nome: "Elias",
idade: 32,
ativo: false,
};
...
setCliente({
...cliente,
ativo: true, // como está depois, tem prioridade sobre o valor original gerado pela desestruturação.
};
Importante saber que essa desestruturação não é "deep", portanto não vai recriar objetos em um segundo nível.
na verdade pra esse caso e melhor fazer assim:
setCliente((old) => {
old.active = true;
return old;
})
assim ele modifica o objeto sem fazer alocações desnecessarias.
Adendo: utilizar o "..." antes de um objeto é uma operação que se chama spread operator.