Yes, I misspoke, unsigned( int) to int is conversion not so undefined wrt 0.
I was also thinking about what is actually a uint32_t to int conversion, that may lead to truncation if sizeof(int) < 4, but I guess these archs aren't supported by APR already, since there is no (assembly) code to rely on/fix...
I admit the patch isn't strictly necessary, it just make the return value consistent on all compilers, and won't let a code reader think (s)he can use the (new) return value because (s)he currently use this OS with that compiler, it has happened ;)
As an APR user, I'd prefer the return value to be a real boolean (0 or 1, so that I could xor it without using !=0), rather than a undefined/compiler-dependent non-zero.
As a lib, APR should be consitent accross platforms (IMHO), though letting those who know where they run (what they do) play with the API can be a choice too.