yes, you’re sampling twice as llian says (even though you’re only using the alpha initially, it’s still sampling the whole texel and giving you the alpha).
an alternative to discard is to use the alpha test glEnable(GL_ALPHA_TEST), and allowing the texel to pass through the rest of the logic in your shader - the end result will not write to the colour or depth buffers.
well using the alpha test is only going to be quicker on older cards where discards are expensive but alpha tests are quick. It’s just a legitimate alternative to discard at the moment, but obviously not the right way to do it.
Yes it is. To the best of my knowledge, the performance hit with using discard is that it disables early z but so does using the alpha test so I won’t worry about it. I suppose performance also depends on how well the branch is handled. Refer to the NVIDIA GPU Programming Guide for more information.