I got flashback memories from my days in Obj-c. I love rust but tend to stay away from reference counting as much as possible :). The first example with the two buttons showed my main annoyance with them. They had to decide which closure keeps a strong reference and which one a weak. A refactor later can be a tricky thing because one always needs to double check again if the reference links are still correct. At least with obj-c these errors will only pop up at runtime.
No I wanted to imply that I actually don’t know how rust handles this case. I think runtime errors are the worst especially with UI. Even when you have a full integration e2e test suite. I take compile errors over runtime errors any day.