With Swift 5.3 you can now leave out self inside of closures of value types. Furthermore it is possible to capture self explicitly. I think the new rule should be to never write self except when it is required for disambiguation. Moreover, a strong capture should be explicitly spelled out in the capture list once. Brevity is achieved without any loss of clarity.