First, Scheme, as a language, doesn't have defmacro. I have never really looked into Scheme, but this is usually brought up as one of more important differences between Scheme and CL, that Scheme has a system of pattern substitution hygienic macros, which are more complex, but avoid variable capture, which is more important in Lisp-1. From what I read most Scheme implementations do include an unhygienic defmacro equivalent, but it might not be a good idea to use it everywhere in Scheme...
Anyway, CL macros do not have access to run time bindings, unless by access you mean something different than I, since macros are expanded during macroexpansion time, which is part of compile time, which is before run time, and having access to runtime bindings would require time travel.
What CL does allow, and Scheme probably has some equivalent, is mixing compile time, load time and run time with eval-when
. Although usually if one wants macros to use functions, the functions will be defined in another file, which will be compiled and loaded before the file containing the macros.
I am not sure if I understood your questions, but I hope this helps.