DSLs still use normal data down below. Thats part of why it is so easy to write DSLs.
You can write a Datalog DSL and it can work with almost everything. You can write a Prolog DSL and it can work with everything.
You can still expose and send around all the data the DSL uses. The trick is not to mix up what is functinality and what data, witch is what standard OOP does. Many good OO Languages like Dylan or Common Lisp do not do that.