I would remove the defaults for the curves and the fx. Once any of the handles is default-initialized, there's no way to set it a value, so an engine that doesn't provide all three becomes unusable. (I know there's a default empty curve in discountingswapengine, but it's not useful there either. We're only leaving it there for backward compatibility.)