After some investigation, it seems that the method inside DGSControler that controls the AvailableReplicas status is never called. This happens because:
on scaleDown, a number of replicas is removed
these replicas lose their owner references
the DGSController is triggered again (because a DGS has had its status updated) but the controller's syncHandler is never called, because the updated DGS has no owner references
so the AvailableReplicas is never updated
possible solutions
add a PreviousDGSCol Label that gets examined on DGSUpdate. If it exists, then syncHandler is called with this label's value as key
on decreaseReplicas method, modify somehow the DGSCol object, so that Update is called for that