Here are a few suggestions to try to make that dense section of the manual on Edebug and macros a little clearer. I'd like to remove mention of eval-when-compile from the explanation of how to make sure macro specifications are available, because it's not the only way to get yourself in that situation. If you navigate to a function in a file that's not yet loaded which uses a macro in a different file required by the first file and also not yet loaded, and C-u C-M-x, Edebug will complain due to the lack of macro spec regardless of whether the never-executed require in the first file was wrapped with eval-when-compile.