Bueno, masterojitos, me quedo un poco sorprendido que las consultas que pongo como ejemlpo parezcan demasiado complicadas... habitualmente no llego más allá de una subconsulta en esos foros, lo que es extremadamente simple.
Habitualmente, los select anidados tienen por objeto, precisamente, la disminución del tiempo de procesador y la cantidad de lecturas necesarias, por aprovechamiento de índices, y para evitar que el parser de MySQL desperdicie recursos ya que el WHERE, donde la mayoría pone las selecciones, es la parte que el mismo no puede optimizar...
Me ha ocurrido muy a menudo que cuando intento una sentencia con toda la definición de búsqueda en el WHERE, la cantidad de registros leídos implica un enorme uso de I/O, que es lo que se debe evitar, mientras que si escalono las eliminaciones, el resultado se realiza más rápido.
Tal vez la cosa pase porque habitualmente debo desarrollar cosas realmente complejas, por lo que un SELECT * FROM tabla1, no es la sentencia que suelo ejecutar.
Si mis ejemplos parecen complejos, mira los ejemplos del manual oficial de referencia en la Web de MySQL:
Proyecto Twins: 3.7.1. Encontrar todos los mellizos no repartidos