Yes, you are right. The noise is spatially uncorrelated (i.i.d) and also uncorrelated to the signal. Furthermore, the noise is additive and sampled from a zero-mean unit standard deviation Gaussian which is then scaled for user-provided standard deviation and offset by user-provided mean. If no variance and mean values are specified, imnoise chooses zero mean and 0.01 variance.
You can actually see the entire code for by doing >>edit imnoise in MATLAB. You should have the Image Processing Toolbox.
Regarding randn() - it produces i.i.d samples from a zero-mean unit standard deviation Gaussian. The range of a Gaussian is (-Inf Inf) and hence you see values outside the range (-1 1). MATLAB function rand() gives values in the range (-1 1) that are uniformly distributed.
Edited: Updated answer to include exact default mean and variance values.