I believe a DSL-done-right doesnt care about the issues you mention. The important thing about DSLs is the DS, Domain-specific. The domain experts care about a nice language fitted for their specific domain. But they dont care about evaluation order, macros, lazyness, and whatnot. If the DSL fits the domain, these are non-issues.