`guard` capture specifier for closure capture lists

Other than differences in the diagnostics (which, granted, is no small thing), what is the difference between this and [unowned self] without the flexibility of choosing where to assert?