It's a nice tool for abstraction, but its simply another tool. Once you have the ability to make a function that returns an arbitrary value, including other functions, and can take an arbitrary value, I think you're largely done. I can build conditionals, lazy vs eager eval, and the whole nine with this simple contruct. And sure, it starts out looking uglier, but c'mon, we're comparing to Lisp. :-)
The real question is how much of the language is built out for you already. And what type of "culture" does that build out presume or create...
Yeah, you can simulate that stuff with lambdas. For that matter, you can simulate function calls by following conventions in assembly language. That's what I meant by "awkward/difficult". Surely you'd concede that you're happy to have syntactic support for if-statements and lambdas?
Given that, it's not a stretch to imagine that syntax could be useful in other scenarios.
The real question is how much of the language is built out for you already. And what type of "culture" does that build out presume or create...