For many expressions FOO, Maxima does not know sign(FOO) even after assume. Here is another example.
(%i2) prederror : false;
(%o2) false
(%i3) declare (a, real);
(%o3) done
(%i4) assume (sqrt (-2 * sqrt (a^2 + 1) + a^2 + 2) - a < 0);
(%o4) [a-sqrt(-2*sqrt(a^2+1)+a^2+2) > 0]
(%i5) is (sqrt (-2 * sqrt (a^2 + 1) + a^2 + 2) - a < 0);
(%o5) true
(%i6) is (sqrt (-2 * sqrt (a^2 + 1) + a^2 + 2) - a > 0);
(%o6) unknown
(%i7) is (equal (sqrt (-2 * sqrt (a^2 + 1) + a^2 + 2) - a, 0));
(%o7) unknown
(%i8) sign (sqrt (-2 * sqrt (a^2 + 1) + a^2 + 2) - a);
(%o8) pnz
(%i9) asksign (sqrt (-2 * sqrt (a^2 + 1) + a^2 + 2) - a);
Is sqrt(-2*sqrt(a^2+1)+a^2+2)-a positive, negative, or zero?