Oh yes, if you have many references to a variable, then you may be prompted 30 times, too... I know it is annoying, but there is really no easy workaround for that.
During build, this behaviour is necessary because you cannot build without having the variable defined. For project loading, however, it is annoying if you do not want to define the variable at that time.
We would need something like Freeze() and Thaw(), so all missing variables are recorded in a list between those two calls, and the user is prompted exactly once for all of them afterwards. But it is not quite so easy either, because the dialog is not very fit for that purpose - the user won't know he needs to enter several variables (or which ones).