Почему в React чтобы изменить useState многие пишут вот так setState(pre => pre = data), а не просто так setState(data)?
setState(pre => pre = data) - это чушь бессмысленная.

setState(pre => {
  const data = <что-делаем с pre>;
  return data;
}) - другое дело. Такая функция не зависит от внешних данных, только от предыдущего состояния.
В том виде, в котором приводите вы запись не имеет смысла. Зачем используется функция описано в документации.
https://reactjs.org/docs/hooks-reference.html#func...
Functional updates

If the new state is computed using the previous state, you can pass a function to setState. The function will receive the previous value, and return an updated value. Here’s an example of a counter component that uses both forms of setState: