> That said, to be honest it's still very confusing and I still don't understand how the hell Groovy works with it's looks-declarative-but-really-isn't code style.
How?? It's exactly the same as the Groovy syntax in almost every way, specially the nested blocks which makes Groovy look declarative and that Kotlin inherited from Groovy.
The now default Kotlin syntax helps somewhat.