On a stage with scale {x: 2, y:2}:
If a cache made before added to the layer, it works as expected:
http://jsfiddle.net/kzhdev/EY3A6/12/
If a cache made after added to the layer, the cache is scaled twice.
http://jsfiddle.net/kzhdev/EY3A6/13/
It looks like when drawing a cache, it needs to take account layer scale.