I think another operation that might be desired on a bandpass is multiplication of two band passes.  e.g. if you had a reflectivity function of a mirror, the transparency of the atmosphere, the transmission of one or more lenses, and then finally an explicit filter, it might be convenient to have them all defined separately, and multiply the throughputs together to get the final effective throughput for a particular filter.  I think this wouldn't be hard to implement when the only attributes to keep track of are a function and the limits.  The new function is just the product of the two functions, and the limits are the inside limits.  

Similarly, multiplying by a scalar might also be useful.