ZeroOperator maps whatever Fun to zero on a specific Domain. Whatever space on that Domain doesn't matter.
For example, there is an Operator called C from space S1 to space S2. There is a ZeroOperator called D from space S1 to space S3. S2 and S3 are both spaces on [-1,1].
Executing C+D will trigger a conversion between S2 and S3, which can't succeed in general for random S2 and S3. But C+D should be C AFAIK.
IMO the field rangespace of ZeroOperator should be replaced by domain.