If all of your variables are going to be (for example) Real, then you can intercept the creation of new symbols and add that assumption to $Assumptions. E.g.
$Assumptions = True; $NewSymbol = If[#2 === "Global`", Print["Created new Global` variable named ", #1, ". It is assumed to be real."]; $Assumptions = $Assumptions && Element[Symbol[#2 <> #1], Reals], Null (* other, probably a system symbol is created *)] &;
Then if you create a new symbol that you don't want to be real, then you could follow up with something like $Assumptions = Most[$Assumptions].
Note: I don't necessarily claim that this approach is a good idea... It's probably best to just define the $Assumptions for the variables you are going to use. This can be done programmatically using Map, Table, etc.
$Assumptions = Element[#, Reals] & /@ {a, b, c, d}$Assumptions = Element[{a, b, c, d}, Reals], but for more general range restrictions, you're right. A simpleMapshould work.