From some internal discussions at Salesforce we concluded that we need better control over the resources (mostly threads) consumed by HTable when used in a AppServer with many client threads.
Since HTable is not thread safe, the only options are cache them (in a custom thread local or using HTablePool) or to create them on-demand.
I propose a simple change: Add a new constructor to HTable that takes an optional ExecutorService and HConnection instance. That would make HTable a pretty lightweight object and we would manage the ES and HC separately.
I'll upload a patch a soon to get some feedback.