I think we could make SEDs immutable and have this and similar functions return a new SED rather than modify the current one.  This helps prevent problems when a function takes an SED argument to make sure you don't modify the original, since the user might not expect it to change.  So we could have the syntax here be:
```
sed = sed.setNormalization(base_wavelength, normalization)
```
and the original would be unchanged.

The implementation of that here would be to have the new SED object be a simple lambda function wrapping the original function:
```
ret = self.copy()
norm = normalization / current_fphoton
ret.func = lambda wave : self.func * norm
```
Then I think you can get rid of the `needs_new_interp` stuff, which would be a bit problematic in the paradigm of the function not necessarily being a LookupTable.