I think the handling of complex and real expression and symbols is confusing at a lot of places. If we declare a complex or an imaginary symbol the test of this bug report gives the expected results:

(%i1) declare(z,complex, j,imaginary)$

(%i3) is(equal(abs(%i*z+1),z+%i));

(%o3) unknown

(%i4) is(equal(abs(%i*j+1),j+%i));

(%o4) unknown

A symbol not declared to be complex or imaginary is assumed to be real. With this assumption the following test might be called correct too. The symbol x can not have the value %i, it is assumed to be real:

(%i5) is(equal(abs(%i*x+1),x+%i));

(%o5) false

The problem is that the assumption, that any symbol is real by default sometimes gives the desired results, sometimes not.

By the way: The option variable domain does not change anything. This is a problem too. I think a clear concept is missing to get all this right.

Dieter Kaiser