In 40 or so years when nobody can obtain a working SNES, and someone wants to look back and understand how the SNES hardware worked, they won't be looking at ZSNES' source code for that purpose. (hopefully we will have transistor layouts ala Visual6502, but you never know ...)
bsnes aims to emulate the hardware as closely as possible, with a side effect that it runs every game as a result. Other emulators aim to play the games, with the side effects of bugs in the least popular titles which nobody notices.
For today's hardware, Snes9X is the best choice for just playing games. But in ten years when cell phones can run bsnes at full speed, and you have to emulate an x86-32 to run ZSNES anyway, why not use something more reliable and guaranteed? GUIs are just frippery, easy to replicate or improve upon separate from emulation.
Yes, and he wasn’t really into collecting all those cartridges. As far as I understand he bought all SNES games to scan the labels on the covers and check his emulator’s accuracy.
Specifically, to document the memory-map each one used.
Traditionally, SNES emulators have used the internal game header and a whole stack of heuristics to guess at what memory-map each game expected, but that's not exactly what you'd call a preservationist approach, and caused problems for homebrew that wanted to set up a perfectly legitimate memory-map that no commercial games happened to use. Now there is (or there will be) a standard database of game SHA256 → known memory map that SNES emulators can use, and a way for homebrew games to explicitly specify what memory-map they want.
This guy has his own emulator aswell.
http://byuu.org/