Looks like macroexpand and other uses of eval-string don't read in the right package.
BTW, I've run into a limitation of the current multiprocessing scheme. E.g. if you have a single repl that is busy then you can't meta-point or macroexpand. Was the creation of a dedicated control stream considered and rejected?
It would be useful to have a guaranteed connection from emacs to the lisp - another use would be to have the control stream use process-interrupt instead of relying on sigint getting to the correct thread.
-Alan