self.lstm has only one set of weights, you can check the source code 3.
Therefore when you reuse self.lstm it has to reuse the same weights for the second layer.
The training paths are not the same, true, but the gradients for the two paths just get added together.