"I also find it super cool that I can pass a function that returns a function as a parameter to another function!"
This is why JavaScript is so hard to maintain. I can't even imagine how long that will take for another guy (even a JavaScript guru) to understand your code. It's very fun when you write it, it's hell when you have to maintain such code. And when you did not write this, you juste hate the developer who wrote this. So, no, IMHO, it's not super cool to be able to write complex things that will take hours for others to understand and debug when needed.