Inplace operation in your case does not make much of a difference. Try to see from this perspective you only have one inplace operation and no operations are dependent on it, so there are fewer chances of any conflict. Also, errors in inplace operation occur generally when we have multiple vectors referencing same memory and then we try to update them inplace resulting in inconsistency.
A simple example if x needs value of y in backprop, but we already updated y inplace, then it becomes a problem for x.
Also check the docs 5 as it explains inplace operations in quite some detail.