This is a good example where the closures really are peers. Not supporting a label for the first closure in this case would be actively harmful.
If we need to support it in some cases then change to the API Design Guidelines be revised:
Name functions assuming that trailing closure syntax will be used. Include meaningful argument labels for closures when their meaning is not clear from the base name alone.
If we go in this direction, maybe we should consider deprecating trailing closure label elision altogether. This is a much larger change to the language, but would align declaration with usage and ensure all call sites are consistent.
The misalignment of declaration and usage could be considered actively harmful in the presence of an alternative that makes the language more consistent. For example, usage sites such as array.first { ... }
require the reader to know more about first
than should be required.
I'm not sure what migration might look like, but perhaps static analysis could infer whether a label should be required or not from usage sites.