Hola otra vez:
 
La verdad es que el código sigue confundiéndome (aunque si te funciona, ¡estupendo!), además, solo son apuntes teóricos... 
El uso de toString() es para convertir objetos a representaciones de texto. Si hacemos una alerta de un formulario, seguramente se verá "[Object]" en explorer y en otros navegadores dependerá del tipo de Objeto HTMLFormObject (o algo parecido) mostrará mozilla... y no sé con Opera que se verá... 
Hace un tiempo dí una respuesta de como mostrar la fecha de otra manera, y no encuentro el post, pero si se hace una definición así:  
Código:
 Date.prototype.toString = function() {
return this.getDate() + "/" + this.getMonth() + "/" + this.getFullYear();
}
  verás una representación distinta a las habituales (sin necesidad de poner ese toString()...)
Creo que una buena razón para su uso puede ser una concatenación de números: 
n = 1;
cadena = 1234 + n.toString();
numero = 1234 + n; 
Saludos