And I think stylistic choices should be rationalized with something stronger than "it exists elsewhere" and subjective arguments that the syntax is redundant.
I'm glad you brought that up! The syntax that allows omission of empty argument lists specifically for closures is to support elegant DSL-like representation at usage sites. This is a separate concern from how the function is declared.
The situation we have today can be summarized as follows:
Function declarations have parentheses around their argument lists, even when the list is empty. Function calls are the same, with the single exception that a function call that takes a single function type argument, called with a trailing closure literal, may omit the empty parentheses.
That second sentence is a single point of divergence for a specific use case that improves the elegance of the language; SwiftUI is a great example of that.
The recommendation in this thread is to diverge in two directions:
Function declarations have parentheses around their argument lists, except when the list is empty. Function calls are the same, but now with two exceptions: a function call that takes a single function type argument, called with a trailing closure literal, may omit the empty parentheses even though it must still be declared with the argument list inside them; and a function that takes no arguments may be declared without parentheses even though it may not be called without them.
Adding more exceptions to the syntax of the language makes it less consistent, and there should be good reasons for doing so. I simply don't think dropping two characters from a subset of function declarations is a big enough win.