I see this expression: "regularization works because it keeps weights small" almost everywhere on the internet. So I'm going to make a semi-confident assertion here which is more of a question to test my understanding.
This is a misleading statement. Hand-wavingly making weights smaller won't achieve anything. If you take all the weights of a model that's overfitting and downsize them, the resulting function will be just as overly-complex but scaled down.
The real trick of regularization is that you are forcing the training to make choices about which weights it wants to keep large, and which weights it should get rid of by pushing them to zero. So regularization just imposes a kind of weights economy or rationing of weights to the model. The model has to choose which weights will give the most bang for their buck, and get rid of weights which add a small amount of value but don't contribute to a general fit.
So I would rephrase the general expression to: "Regularization works because it keeps a subset of the weights small".
EDIT
I think this answer confirms my thought process.