In 2.55 beta:
When setting up constraints in an armature, I sometimes prefer to use drivers to return values rather than the usual constraint ranges – this allows me to use asymmetrical range values for the target bones, among other benefits.
When constraint targets are set for Local Space, their values can be read and used even when they are also under constraint. For example, the Local Space rotation of a bone under IK constraint can be used to constrain another bone’s location, using a Transform Constraint.
But if you want to use a driver for one of the Transform Constraint’s owner values, you can’t use the target’s Local Space if it’s under constraint – when “Local Space” is enabled in the driver and a rotation transform channel is read via a variable, the driver returns a value of zero for all rotations of the constrained target bone (such as the IK-constrained bone mentioned before).
This seems like a discrepancy – the Constraint can read a Local Space rotation of a constrained bone, but the Driver cannot, yet both are used in similar fashion to return values for use by the constraint owner. Should this be considered a bug? It definitely limits & complicates use of drivers in constraints; using World Space means that you have to compensate for the entire rig’s orientation when calculating the target bone’s rotation, rather than using the rotation relative to the armature (Local Space).