The complete disassembly of Pokemon Red/Blue  is an outstanding piece of work. All the source code and data of the ROM have been figured out and commented.
For the Zelda DX disassembly I'm currently working on , devdri wrote a custom GameBoy disassembler named "awake" . It produces a nice pseudo-code view with C-style statements, and also do some static codeflow analysis with variables propagation to know which memory banks are being switched in and out. Quite impressive IMO.
But damn, even with these tools disassembling is still a lengthy work…