¿Cuáles son los posibles escenarios de uso para el nuevo tipo de datos "Símbolo" de JavaScript?

Acabo de encontrar la documentación para el nuevo tipo de datos (propuesto para ES6, pero ya implementado en Firefox, Chrome y Opera) en JavaScript,Symbol:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol http://people.mozilla.org/~jorendorff/es6-draft.html#sec-symbol-objects

Estoy leyendo al respecto, pero no puedo pensar en un posible escenario de uso.

La documentación dice:

Un símbolo es un tipo de datos único e inmutable y puede usarse como un identificador para las propiedades del objeto.

OK, bien, digamos que hago lo que dice la documentación:

obj[Symbol("a")] = "a";

pero, dado que Symbol ('a') siempre devuelve un valor único (objeto) y:

Los símbolos no son visibles en ... en iteraciones.

¿Cómo recupero mi propiedad deobj?

var obj = { normalProperty: 'just a string' };
obj[Symbol('a')] = 'a';

document.getElementById('retrieve').addEventListener('click', function() {
  document.write('Stringified object:' + JSON.stringify(obj) + '<br/><br/>');
  document.write('Trying to get Symbol-property value, aaaand...: <br/>');
  document.write(obj[Symbol('a')]); // undefined
}, false);
<button id="retrieve">Retrieve obj's property</button>

Editar

Por supuesto, puedes recuperarlo así:

var x = Symbol('a');
obj[x] = 'a';
obj[x]; // "a"

pero cual es elpropósito de hacerlo de esta manera?

Gracias por adelantado :)

Respuestas a la pregunta(2)

Su respuesta a la pregunta