Since the thread pool running go-blocks is fairly small, it seems that some operations inside go-blocks aren't recommended. For example doing blocking I/O is bad, and doing compute-heavy operations is bad. A few such operations running in go-blocks will hog the entire thread pool, and no other go-blocks would be able to run at all.
What most common scenarios do Clojure programmers use go-blocks for? Is it mainly useful for working with already asynchronous libraries? Transform callback-using libraries/code into a more palatable channel variant? I'll be very interested to see practical examples where go-blocks with parking channel ops are preferable to threads.