Not with top-of-tree FreeBSD, it isn't - the top-of-tree FreeBSD code
returns 0:
http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/gen/confstr.c?rev=1.9&content-type=text/x-cvsweb-markup
The documentation, until recently, said it returned -1, but I filed a
bug about that:
http://www.freebsd.org/cgi/query-pr.cgi?pr=docs/106234
and it was recently fixed:
http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/gen/confstr.3.diff?r1=1.13&r2=1.14
As for NetBSD, I filed a bug on the code:
http://www.netbsd.org/cgi-bin/query-pr-single.pl?number=35170
which is now closed - they changed the code and the man page.
Similar changes were made to OpenBSD in response to bug mail I sent:
http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/gen/confstr.c.diff?r1=1.7&r2=1.8
http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/gen/confstr.3.diff?r1=1.14&r2=1.15
so DragonFly is now inconsistent with the top of the tree of FreeBSD,
NetBSD, and OpenBSD, and its code is inconsistent with the 5.x and 6.x
releases of FreeBSD.
I don't have
a reference to POSIX.2 to verify the original specification.
Perhaps POSIX.2 said it returned -1 (I think my POSIX.2 is at work), but
what counts now is the Single UNIX Specification, and, as per the URL I
think I sent in my mail:
http://www.opengroup.org/onlinepubs/009695399/functions/confstr.html
it says it returns 0 on errors.