First of all thanks for taking the time to answer in full length.
What you are describing for calculting the specular light is as I understand basically what I'm doing in my code.
Howhever for diffuse I'm not sure how the original author of the technique had this in mind. I'm trying not to do any kind of raymarching or monte carlo approaches since this is supposed to be a "quick n'dirty" approximation for realtime use. Have you had the time to look at the epic siggraph notes that describe this technique ?
Alpha-tested geometry tends to mess up z-buffer compression and hierarchical z representations. So usually you want to render it after your "normal" opaques, so that the normal geometry can get the benefit of full-speed depth testing.
As for why they return a color from their pixel shader...I have no idea. In our engine we use a void return type for our alpha-tested depth-only pixel shader.
Could it be beneficial to skip z prepass for alpha tested geometry compleatly to avoid that z-buffer compression mess ups?
The issue here is you can't since you need the depth information for light culling in the compute shader.
By the way it seems they have alpha-to-coverage enabled in the AMD sample so maybe the color return type has something to do with that ?