Looking into this some more, I realized that the logic for (a+ai)^n should also be used for (a-ai)^n, and I added special cases for (a+0i)^n and (ai)^n as well. All this applies to both Free42 and Plus42 and will be in their respective next releases.
And further, while testing the new logic, I noticed that one of my reference test cases, (pi-pi*i)*(pi-pi*i), returned a result with a small but nonzero real part. This turned out to be caused by Apple's ARM compiler using FMA for the second part of expressions like a*b-c*d, which effectively causes the c*d term to be evaluated with more precision than the a*b term. I added a compiler flag to disable this optimization (which is independent of the -On flag), and that fixed the problem. This affects only the MacOS ARM Binary build; the iOS ARM Binary build is affected the same way, but since I don't distribute that build, I don't expect anyone was affected by this issue on iOS.
The Decimal builds are not affected since they do all their math using the Intel library, and the overloaded arithmetic operators are not affected by the FMA optimization. And the x86_64 aren't affected, either, even though those CPUs do have an FMA instruction. Apparently, the -ffp-contract option is only enabled by default when compiling for ARM, not for x86_64.
Finally, given that this optimization, or it being enabled by default, appears to be a relatively recent change in Apple's ARM compiler, I forced a rebuild of the Intel library and re-ran its test suite, but that showed no errors.
All in all, quite a few changes as a result of something which I initially thought to be a non-issue!