>Don't we need the de-register this on topic change or when the layer is removed from the map?

No I don't think because if you remove the layer then change language then  re-add the layer to the map the label will not be updated.

The only case we want to deregister is when we destroy the layer but I think we never destroy the layer