Да нет там никакой опечатки. После выполнения блока из
#1 у нас
uniqueID содержит ссылку на функцию
function(){
return id++;
}
При этом scope первой функции живет благодаря замыканию, и в результате последовательные вызовы
uniqueID()
uniqueID()
...
uniqueID()
Дайт последовательное увеличение каунтера.
Почитайте
http://javascript.ru/basic/closure, там все хорошо описано.