So my conclusion is that's not possible WITH blend, you have to use grabpass inside surface or pure CG code and that's a pro feature.
Yes, that's what Columbo pointed out earlier
You can emulate it with multiple pass but then only for operation that haven't divergence, the way blend work is that you don't have really access to dest color, it just take the result of src and apply it to the color screen. It's an emulation of how old fixed function shader worked like with directx7.
Not sure what you mean with multipass emulation and divergence, but I don't think I can get the result I want without access to dest, that's the whole problem.
Regarding projectors in Unity, I read that link and a lot of other resources, forums, articles etc. trying everything I could find and I was never able to get a surface shader to work with projectors. If I remember correctly the texture was always applied to the whole mesh I was projecting on, maybe I was missing something crucial, but I don't remember exactly what I tried, just that I came to the conclusion it's not possible.