Just had a quick look but it only seem to save ~50 LoC in cryptowinrt compared to the previous implementation, so I'm not sure it's worth the extra indirections and extra code?
It's also not clear to me how `IAsyncOperationWithProgress` would be implemented with this, and I think sharing code through a static library of WinRT building blocks would be more flexible.