If you checked when the second trailing-closure is parsed whether you were in the matching structure (with a call_expr/paren=trailing closure sibling in the call_expr you belong to, oversimplified) you could catch both the syntax problems above.
I was trying to figure out how to do this in code though. SwiftParse/ParseExpr.cpp/ParseExprList is where it parses the trailing closure but that does not feel like the right place in code–other places in SwiftParse don't seem to be matching on structure to find things (I might be wrong) unless they are looking immediately forward in the parse stream.
Is there someplace where it would make sense to put this check? It feels like something that makes sense in the type checker but it's checking syntax. Or am I worrying about it too much?