In the book 'Elements of causal inference', the code below is used an example for structure identification.
library(dHSIC)
library(mgcv)
X <- rnorm(200)
Y <- X^3 + rnorm(200)
modelforw <- gam(Y ~ s(X))
modelbackw <- gam(X ~ s(Y))
dhsic.test(modelforw$residuals, X)$p.value
dhsic.test(modelbackw$residuals, Y)$p.value
The example is clear, but my doubt is, why is he using an independence test and not a normality test? Given that the data is normal, wouldn't it be easier to test for that?