I would summarize the problem as "libpthread-stubs.so provides weak
symbols, FreeBSD's threading library provides weak symbols, the result
is that a mix of stubs and real functions is used".
All of this problem goes away with the new patches against
pthread-stubs. There is no longer any libpthread-stubs.so whose weak
symbols could cause problems. Instead, pthread-stubs.pc will just "make"
things link against libpthread directly and everyone is happy.
(Of course, having stubs in libc for the functions which can be stubbed
would still be a good idea and would avoid single-threaded programs
linking against libpthread)