Well. Even if GKE allowed that it would have to recreate the pool anyway, but it would happens under the hood. The node labels are set as command line parameters when they are initialized, you need to restart a node to change that.
Although k8s allows to add labels to a node dynamically with their API, those labels are only for one specific node, not a whole pool. So using such labels would break the autoscaler.
Let's say it adds the label dynamically, you add label A and then a pod with a node selector preventing label A.
The autoscaler don't know that label A will be on all new nodes of that pool as it was added dynamically and is not on the template definition. It adds a node to the pool, the GKE controller adds label A to it. The pod is still unschedulable even though the autoscaler added a node for it.
They would have to change a whole lot of code to make it possible and probably there are some other problems that I'm not seeing