The nuance is that *most* calls only return libgit2 errors (which are all negative), while some other calls use a positive value to indicate something not an error — usually those calls that enumerate with a user callback (like the GTTree enumeration block).