The reason that a late train can sometimes be cancelled is to try and stop a cascade of delays from happening. Tracks only have so much capacity, and if train gets delayed into a time-frame that is highly congested, trying to fit the delayed train into that time-frame will result in delaying other trains, which could then cause further problems down the lines and throw the entire network out of order.
They accept a certain number of cascading delays like this, but sometimes it's just known that a certain delayed train will just be too disruptive to the network, so they're forced to just cancel a train to try and save the network's stability.
I can see the cancellations as a means of stopping a cascade of delays, but it's also true that doing so means the train won't count in the delay statistics for the remaining stops. If DB doesn't want people to accuse them of gaming the statistics, perhaps they should calculate said statistics in a way that doesn't directly benefit them when they inconvenience their delayed passengers even more?
Obvious in many ways once you've lived there