Honestly, at a glance, the library design is horrible. A mix of C macros and global variables. The project is really small, to fix it all you need is a single struct pointer that gets passed to around.
Here, however I find your critique in bad taste and poorly thought out for code whose main value is the art generated by code, where brevity and simplicity of the code base is a value in itself.
There is no one true way to write code. Global state is not an evil in itself unless it causes hidden side-effects. For small single threaded programs a large global state can simplify things a lot.
It's like a lumberjack grumbles to an artisan wielding a penknife that it's far too small to cut down a tree.
From the code samples it appears more that the author has created a DSL using C macros than providing a library. Such a bummer.