It might be due to partial, however it seems like the name is passed without trouble (It outputs the right name, when prompted and appears to load the right activations).
I am aware of the discouragement, however for non-linear modules such as nn.Sigmoid, nn.Tanh and nn.ReLU, I hypothesized that due to a very simple input-output relationship (with only one node in the computation graph), the ambiguity of grad_input and grad_output disappeared, unlike for nn.Linear modules, where the gradients could be with respect to both weights, biases or earlier layers. It seems like I might have been mistaken, though.
If backward hooks are broken, are there any other options for changing the calculated gradients of the non-linearities?