sign should make use of mequal facts:
(%i1) assume(equal(y, log(x)))$
(%i2) csign(y);
(%o2) pnz
(%i3) csign(log(x));
(%o3) complex
Here, csign(y) should say complex.
This would be useful in integration, where we do substitutions and know something about the old variable. Adding an mequal fact telling Maxima that the new variable equals some function of the old variable should allow it to make sign determinations on the new variable.