We would need to dig into how each of these functions are implemented.
In particular we need to find out what uses this particular gradient buffer and in which order.
My point was more that it is a dangerous thing to do. Even if you find why it works in this case, for this version of pytorch, your code might silently be broken by the next version of pytorch if we change some internal implementations of Functions or the autograd engine