I don’t know if there would be any advantages, but it depends on your use case and apparently you have some ideas with it. 
If both heads are supposed to return the same number of classes (e.g. 2 classes), but different labels, you would have to be able to split the input data, so that the first head would get data from the first dataset and the second one from the second dataset. While this would be possible during training (since you have the labels) it won’t be possible during evaluation/testing.