Why is the transformation constraint locking scale?

I’ve been wondering about this one for a while and I simply can’t understand it: when using the Transform Constraint (doesn’t matter if it’s the object or bone one) then controlling the object (or bone’s) scale via another object will absolutely lock up that constrained object’s scale to the result.

The reason why I don’t understand that lock up is because the other two, rotation and location DON’T do this, for these is the constrained object’s location and rotation applied additionally as offset to the constraint result.
Only scale works absolutely and completely ignores the object’s inherent scale.

https://dl.dropboxusercontent.com/u/59546146/TransformationConstraint.blend

This file has 4 icospheres in it, the one at the center of the scene is the control object and the other 3 are, from back to front location, rotation and scale transform constrained.

If the control sphere is moved the back sphere will mimic the movement, but it can still be moved individually to create an offset which will be kept.
If the control sphere is rotated the middle sphere will mimic the rotation, but it can still be rotated individually to create an offset which will be kept.
If the control sphere is scaled the front sphere will mimic the scaling, but it can NOT be scaled individually to create an offset.

And I simply can’t understand the reason for that last behaviour, why can’t the inherent scale also just work as offset?

The front sphere is also already set to 2x scale but ignores that completely unless the constraint’s target transformation is changed or the constraint is disabled.

Also this isn’t directly about copying an object’s (or bone’s) scale but using it, otherwise I would just use the Copy Scale constraint with weirdly enough has a working offset setting.
The problem is that I’m prefering to use scaling for control bones in my rigs because that works relative to the rig unlike location which is absolute and all the numbers used will break if I need to change the scale somewhere.
So I map actions and often simple linear reactions of other bones to a control bone’s scale because unlike drivers does this allow me multiple control inputs which can be combined.

That is until I need to map the scale, there everything breaks because scale is the only one without an inherent offset.

S**T - I never knew that! Looks like you found a bug… Same applies to Transform Constraints on bones too.

Cheers, Clock.

I made a bug report of it a while back: [Link]
It turns out to be a known limitation. It is a rather annoying discrepancy. =/