Clojure has a large number functions/macros for working with namespaces and java package imports. To my (limited) understanding the set up of namespaces can be considered state
This won't always work. You can remove Vars from a namespace with ns-unmap, but other pieces of code may still hold references to those definitions.
ns-unmap
Clojure, because it is based on the JVM, has no concept of a "memory image" like some Common Lisp or Scheme implementations.