Thanks everybody for the feedback. Seems to me there are differences in how people expect the compiler to behave. I personally didn't expect the compiler to capture self in my example when I started out with Swift and I was surprised that it did want to do that. Maybe it's just my code where I have a lot of let properties on classes like view controllers, but I run into this quite often.
I have another reason why I would prefer a change in compiler behaviour over a different fix-it:
If you later for some reason change the let into a var and you already put the property in the capture list, that might not be what you want, but will go by unnoticed.
With my proposal, changing the let into a var will cause a compiler error, forcing you to think about if you want to capture self for your closure.
This way you're only forced to think about and deal with self capture the moment it matters.