Ótima explicação, closures realmente são muito poderosas e realmente é um ponto chave que torna o javascript tão poderoso e funcional, porém nem tudo são flores.
Tem sempre que lembrar que o GC não vai liberar a memória daquelas váriaveis que estão sendo usadas na funciona mais interna através de closures, logo, tem que tomar muito cuidado pra não alocar uma váriavel maior que devia e ficar com aquilo alocado na memória durante todo o ciclo de vida da função.
Recomendo esse artigo do meteor blog que mostra como identificaram um memory leak por causa de um mal uso de closures
https://blog.meteor.com/an-interesting-kind-of-javascript-memory-leak-8b47d2e7f156