The actual problem seems to be that the underlying APIs make sharing some data (at least controls) difficult across lexical contexts. That makes it very difficult to write any good libraries that need to pass such data back and forth from user functions to library functions.