Cavemen in bearskins invaded the ivory towers of Artificial Intelligence. Nine months later, they left with a baby named newLISP. The women of the ivory towers wept and wailed. "Abomination!" they cried.
In Scheme, map and for-each are the same, just 'return value' of for-each isn't specified. It can be the same as result of map (at least according to R6RS).
You cannot macroexpand in Newlisp, since Newlisp macros are actually fexprs, they do not expand. In many cases you can replace external eval with println; in that case macro call will print what was intended to be evaluated.
Some general thoughts to learning programming in newLISP:
There is no "underneath" in newLISP, no hidden states, (almost) everything is visible and can be inspected. You can use the 'debug' function to step through 'define-macro's. These are not compiled expansion macros as in Common LISP but rather fexprs - functions without automatic evaluation of their arguments. Kazimir discusses fexprs in more detail on his site.
I don't think it is a good idea, trying to implement a 'foreach' in newLISP. There are other built-in functions doing the same or similar and without the overhead of a function/fexpr definition. Like 'map'. Kazimir simply defined 'foreach' as 'map'.
Don't try to program like Common Lisp or Scheme in newLISP. These are different languages. Try to learn newLISP on it's own terms. The "new" in newLISP means a new mindset to programming: Lisp approached with an applications oriented scripting mindset, not with a specific computer science mindset as developed in Scheme or a compiled language mindset as in Common Lisp.
Cormullion's WikiBooks Introduction is an excellent way to learn newLISP. If you want to get serious work done in newLISP you should also read at least once through the "Users Manual and Reference". It has many examples. There is also a section grouping all functions into different problem areas. This will help you to find out, what functions are built into newLISP already.