This is kind of unfair, unless you're in an indent based language you cannot get rid of this. The only other solution I've seen was in a pascal-like language, where you did end function NAME and that would close everything inside.
True, but there are two things languages like C have over this one: (1) Enclosing stuff in parens and curlies happens less often than they do in this one. So the depth of nesting is typically shallower. (2) The idiomatic way to handle closing multi-line blocks is to use newlines and indents to visually align the closing character with the start of the line containing the opening character. But, like a sibling comment points out, nobody does that and "))))" is idiomatic here, so I feel like it's a fair call-out.