ok, with the help of this guy, Michael Kohl, i found out how to switch to a namespace held in a variable (read here for more details)
so, here we go:
user=> (def working-namespace (create-ns 'my-namespace))
#'user/working-namespace
user=> (in-ns (symbol (str working-namespace) ))
#<Namespace my-namespace>
my-namespace=>
;; notice how it switched to "my-namespace"
;; now if i were to put some other namespace in that variable...
my-namespace=> (ns user)
nil
user=> (def working-namespace (create-ns 'other-namespace))
#'user/working-namespace
;; and switch again, i would get the new namespace
user=> (in-ns (symbol (str working-namespace) ))
#<Namespace other-namespace>
other-namespace=> ; tadaa!
although i don't think it is idiomatic clojure to reassign variables, you could build this into a function that gets the holder var for namespace as parameter
now to get the value of a var inside and outside that namespace
user=> (intern working-namespace 'some-var "my value")
#'other-namespace/some-var
user=> (var-get (intern working-namespace 'some-var))
"my value"