I didn't know that this can be solved by forwarding from one macro to another, will try that, looks really nice.
I will experiment a bit more regarding the field accessors when I'm back from vacation. Overall this has a bit lower priority to me, because the use cases I have barely require plain getter/setter. If a situation requires exposing raw data, plain objects are a perfectly fine solution already. I'd use this closure based approach exactly when I want to hide raw data behind an abstract interface.