¿Restablecer un smartphone elimina todos los virus y malware?

Depende principalmente del sistema operativo (la mayoría de los smartphones utilizan Android) y del virus/malware que haya infectado el dispositivo y de la profundidad a la que esté enterrado en el sistema.

Aquí hay una explicación de las particiones del sistema Android:
Explicación de las particiones de Android: arranque, sistema, recuperación, datos, caché y misc

Explicación de las particiones de Android

El malware común de Android se instala en la partición /data, donde el usuario tiene acceso para instalar las aplicaciones. Eso es lo que el restablecimiento de fábrica es capaz de borrar.

Si el malware consigue escalar sus privilegios hasta el root (jailbreaking | rooting | uso indebido del arranque desbloqueado | guía de falso rooting/jailbreak para guiar a los usuarios a instalar el malware) y se instala en la partición /system o incluso en las particiones /boot y /recovery (que normalmente ni siquiera son visibles para los usuarios del teléfono) entonces el restablecimiento de fábrica no te ayudará y tendrás que usar alguna herramienta especial para deshacerte del malware. Me refiero a técnicas como el reinicio por hardware del chip de memoria o la recuperación de los privilegios de root y el reinicio de las particiones afectadas a partir de una imagen/copia de seguridad limpia.

También cabe mencionar que recientemente se ha descubierto que un número bastante significativo de dispositivos Android (de bajo coste) se envían a los clientes con el malware preinstalado en el sistema, por lo que el reinicio de fábrica no ayudaría en estos casos.