Объясните как работает этот код, я не понимаю эти манипуляции со скобочками?
Как комментарий ко всем ответам:
Надо различать объект функции и вызов результата вычисления функции. 
Объект - это f
Вызов результата - это f()
На этом и основан фокус. 
f() превращается в a
a() превращается в b
b() превращается в print("nested function")
Оно печатает строку.

Хз как это называется но тут каждая скобка отвечает за каждую внутренную функцию в том порядке в каком они объявлены.