If I call my bank and they tell me "You have no money left" ( which is a perfectly plausible reply ) I know i have £0 credit because I don't have trouble understanding the value of zero/null/undef/nothing, they're all different words representing the same thing, mathematically or otherwise.
Most DBI::* methods return 0 (0E0) on success, doesn't mean they're returing false? Tie::Cacher::fetch() returns undef even on success, doesn't mean it is indicating a failure. Either we have a radical overhaul demanding that there is mathematical consistency all around or we just go on using these funny quirks that constitute the power and flexibility of perl, I have absolutely no problem with the latter because I think quite flexibly.
In any case, this behaviour we see exhibited by List::Util::sum() might have been a genuine mistake or it might have been programmed in just the way it is for good reason. I just wonder what Graham Barr (the original author) has to say about it?
perl -e '$,=$",$_=(split/\W/,$^X)[y[eval]]]+--$_],print+just,another,split,hack'er