diferença entre "void 0" e "undefined"

estou a usar"Compilador de fechamento", ao compilar meus scripts, gasto o seguinte:

Antes de compilar:

// ==ClosureCompiler==
// @compilation_level SIMPLE_OPTIMIZATIONS
// @output_file_name default.js
// @formatting pretty_print,print_input_delimiter
// ==/ClosureCompiler==

var myObj1 = (function() {

  var undefined;   //<----- declare undefined

  this.test = function(value, arg1) {

    var exp = 0;
    arg1 = arg1 == undefined ? true : arg1;  //<----- use declare undefined
    exp = (arg1) ? value * 5 :  value * 10;

    return exp;
  };

  return this;
}).call({});

var myObj2 = (function() {

  this.test = function(value, arg1) {

    var exp = 0;
    arg1 = arg1 == undefined ? true : arg1;  //<----- without declare undefined
    exp = (arg1) ? value * 5 :  value * 10;

    return exp;
  };

  return this;
}).call({});

Compilado:

// Input 0
var myObj1 = function() {
  this.test = function(b, a) {
    a = a == void 0 ? true : a;  //<-----
    var c = 0;
    return c = a ? b * 5 : b * 10
  };
  return this
}.call({}), myObj2 = function() {
  this.test = function(b, a) {
    a = a == undefined ? true : a; //<-----
    var c = 0;
    return c = a ? b * 5 : b * 10
  };
  return this
}.call({});

Com isso, acredito que a questão do uso de "void 0" e "undefined", existe alguma diferença no uso ou os dois casos estão bem?

Editar

se eu definir "var undefined" compilado com "void 0", se eu não definir "undefined" compilado com "undedined", então não será uma questão de número de caracteres entre "undefined" e "void 0"

Teste

Edit II: performance, baseado emesse link

Código e teste

IE 8:
typeof: 228ms
undefined: 62ms
vazio 0: 57ms

Firefox 3.6:
typeof: 10ms
indefinido: 3ms
nulo 0: 3ms

Opera 11:
typeof: 67ms
undefined: 19ms
0: 20ms

Chrome 8:
typeof: 3ms
indefinido: 5ms
nulo 0: 3ms

questionAnswers(1)

yourAnswerToTheQuestion