Maxima's general rule seems to be that f(%i*v) returns a different form if that form is "simple". So for example sin(%i*x) => %i*sinh(x). But not when the form is messy, big or hard to understand, so asinh(%i*x), log(%i*x), ... do not expand by default. Results involving atan2 are particularly problematic. The case acos(2) => -(%i*log(2-sqrt(3))) seems somewhat messy/big, so it's not clear. But both logarc and rectform are available to expand it. I tend to think that the current behavior is OK, but...
limit(asin(inf)) should be infinity
expand of complex float to high power loses precision
expand of float to high power loses precision
expand of float to high power loses precision
Consider rootscontract(sqrt(a)*sqrt(4*%i-2)) Should that produce a different result when you substitute -1 for a?
Yes, rootscontract in general doesn't preserve the choice of sign. I think that's inherent in its functionality, isn't it?
Are you sure? %i*sqrt(4*%i-2)) == sqrt(-1)*sqrt(4*%i-2)) contract => sqrt( (-1)*(4*%i-2) ) == sqrt(2-4*%i)