Добрый день!
Уже несколько дней пытаюсь понять замыкания в js,но пока не особо выходит.
Подскажите пожалуйста:
1.
Есть такой код
http://jsfiddle.net/vnkuZ/
Мне интересно почему если в коде javascript вместо 
return function() {
  document.body.style.fontSize = size + 'px';
};
прописать 
return document.body.style.fontSize = size + 'px';
то скрипт становится нерабочим?
Зачем возвращать функцию function() внутри функции makeSizer(size),когда можно сразу вернуть значение 
document.body.style.fontSize = size + 'px'
?Почему это не работает?
Что дает возврат функции?
2.
http://jsfiddle.net/E5Aj6/
Здесь - то же самое,не понимаю зачем нужно вызывать функцию?
Знаю то что без замыканий при таком скрипт,любой элемент будет отображать последнее значение массива.
Но все равно не очень понимаю - что делает эта функция?
Что нам это дает?Если не трудно,распишите поподробнее.
function(x) {
   return function() {
      ...
   }
}(n);
Объясните пожалуйста также,в функции 
function(x) {
}(n)
 что есть такое x и что есть n?Откуда берутся?Особенно x? 
P.S.
Статьи за замыканиям читал много где,и на learn.javascript.ru и на хабре,и mozilla javascript reference - все равно не до конца понимаю.