There's also different type of lightgun, that was used in arcade shooters: it flashes whole white frame, and measures exact delay of scanning beam determining arbitrary X-Y position. This doesn't work at all on LCD, but I wonder whether it be done by drawing rainbow frame that encodes pixel position as equation of pixel color values, and using RGB sensor in the gun.
The IBM EGA had a "light pen" feature which functioned similarly (the CRTC had registers dedicated to this), but it seems to have been little-used and disappeared with the VGA.
Yes. In fact, "gun latches position counters using CRT beam timing" is the common approach. As far as I'm aware, blanking out white boxes to do a single target test per frame is something exclusive to the NES Zapper, and I'm not sure why Nintendo built things out this way.
If I were engineering a light gun from a blank slate, I would probably first try Nintendo's method and see if I could meet requirements that way. It seems less timing-dependent and faster to market. It may also reduce the differences between NTSC and PAL versions of the product.
Of course, blanking out the target for a frame makes the solution not scale well to a large number of targets. Presumably, one would perform something like a binary search (flash all targets, then flash half the targets if there was a hit somewhere, etc.) for a large number of targets.