More layers of indirection will result in notably more processing per action. Making a specialty 'device' with fewer features and simpler assumptions about usage allows you to cut a lot of significant corners.
I'd be -very- interested in some measurements of the difference between the 'existing possible' approach and compcache..