A ver, vamos a aclarar un poco. Siempre se devuelve un valor, SIEMPRE, ya que los valores se devuelven utilizando un registro (eax en 32 bits) con lo cual por mas que no lo modifiquemos (cosa bastante rara) y no usemos return la funcion llamadora puede interpretar nuestro valor de retorno con el contenido de este registro.
En general no pasa nada por declarar el tipo de retorno de main como void.
Tal vez esto le sirva a alguien:
http://www.solocodigo.com/index.php?...&type=4&node=1