"It chooses an interpretation for radical expressions in a manner that is
consistent within that expression."
radcan( sqrt( (x^2-2*x+1)/x) );
(x-1)/sqrt(x)
I agree and this is okay by me but I would not say that other
simplifications are wrong.
scanmap(factor,sqrt( (x^2-2*x+1)/x) );
-> sqrt(1/x)*abs(x-1)
Is good to, depending on what you are going to next.
Anyway
integrate(sqrt(x^2-2*a*x+a^2)*sqrt(x^2-2*b*x+b^2),x);
-> (2*x^3+(-3*b-3*a)*x^2+6*a*b*x)/6
is wrong. I don't know if this is because of radcan but it is hopelessly
wrong.
On the other hand
integrate(scanmap('factor, sqrt(x^2-2*a*x+a^2)*sqrt(x^2-2*b*x+b^2)),x);
can be done by pw.mac. I chose a different "interpretation" which I would
argue is not wrong.
Rich