¿Cuáles son los usos de los efectos secundarios en la programación?

Me gustaría citar primero la definición dada en la Wikipedia:
En ciencias de la computación, se dice que una función o expresión tiene un efecto secundario si modifica algún estado o tiene una interacción observable con las funciones de llamada o el mundo exterior.

¿Entonces que significa eso? Escribir datos en una base de datos es, según esta definición, un efecto secundario. Enviar datos a una aplicación de terceros es un efecto secundario. Incluso cambiar una variable es un efecto secundario.

Observando el paradigma orientado a objetos, siempre hay instancias que llevan estado. Grapes a un usuario de una base de datos y cambias la contraseña. Entonces cambia un estado (al menos si cambia el valor de la memoria física). Este es un efecto secundario. Usted almacena esa nueva contraseña. Este es un efecto secundario (ya que cambia el estado de su base de datos). Cada aplicación necesita cambiar algún estado en alguna parte. Algunos idiomas intentan evitar eso tanto como sea posible al dejar los datos inmutables, pero incluso estos idiomas cambian de estado tan pronto como los datos se escriben en una base de datos o se deben entregar a una aplicación de terceros.

Entonces, según estas descripciones, creo que obtuviste unas fotos bastante buenas de lo que es un efecto secundario y para qué se usa. Si no: Siéntete libre de comentar esta respuesta.