Hello Maxim,
regarding your first question, with the next release we will adapt the code generators to enhance every generated ANSI C enumeration by a name corresponding to the original Chora enum/set definition. For example, the Chora definition Core::ViewState would be generated in ANSI C enumeration typedef enum { ... } CoreViewState. This should allow you to refer the definitions as individual data types from your code. Ayway, this will not prevent the developer from mixing different enumeration types. C treates them not restrictive enough.
Regarding your second question, such adaptation is very complex and not possible. Being focused on the visually aided programming, we designed Chora with a simple, flat type system. Local, nested type definitions as available e.g. in C++ are not supported. The unique possibility to group and separate type definitions provide units. You could, for example, store the affected class and the corresponding enum/set definitions within an individual unit. Anyway, the enum/set definitions are still global entities. Units provide only namespaces for the enclosed definitions preventing so eventual name conflicts.
Hope it helps you further.
Best regards
Paul Banach