> whether solve would return the two solutions if it knew x was real.
No, solve doesn't know about the abs function at all. The reason that
assuming and then solving works is that the *simplifier* eliminates
the abs function from the equation:
assume(x<0)$
abs(x) => -x
Of course, it is possible to write code which will try all
combinations of sign for abs expressions. This is not part of base
Maxima, but for all I know, someone may have written it as a Share
package.
-s