We can read that the normalization of the data that is input to a neural network is important and is considered as a best practice, for example SO #1, SO #2 and many other places. It looks to me that there is no consensus on why it works, but there are a wide variety of possible reasons, including that the initialization of the weights is assuming normalized data, and that the gradient descent might become unstable if the input variables are scaled very differently (see here). I myself have also experienced in an application that applying Z-score normalization was essential in order to achieve good results. On the other hand, my understanding is that it is not theoretically proven that normalization will always allow to produce better results than without it, and it is just one of the techniques in the engineer's toolbox to try.
Now the question is, which paper to cite about that normalization of inputs is a best practice?
I tried to look for a good reference for it but I have not found a really good one. For example, I cannot find this in particular in the Goodfellow book. There is a lot about batch normalization (i.e., that is often applied in between layers, and the normalization parameters are learned), and some computer vision related normalizations, but not this. The Glorot paper does not mention normalization in this sense either (what they normalize is the initial weights). On the other hand, this technique is there in quite some blog posts and tutorials, e.g., this one.