This is an R6RS change.
The rationale for R6RS making this change was simply because R6RS consistently removed "is an error" semantics. R7RS retains "is an error" in many places, and this is much simpler and cleaner, so we should revisit this issue.
WG1 decided to adopt slightly modified R5RS language, thus:
The value of 0^z is 1 if (zero? z), 0 if (real-part z) is positive, and an error otherwise. Similarly for 0.0^z, with inexact results.
We voted to use the R6RS semantics.