proxy generates a single class for each unique superclass combination
and reuses that class for subsequent requests for that combination
rather than go through the overhead of a new class compilation each
call. It can do that because the generated class is just a thunk that
forwards methods to a map of Clojure fns. So, the things that look
like methods in a proxy call are not, and no fields or methods can be
added.
In short, proxy is not the right tool for this job. If you want to
create a class and add methods and even have some (immutable) state,
gen-class and friends offer many features.
If you really want to write a class with setFoo/getFoo functions on
top of mutable fields I recommend you use Java to do so.
Rich