Hmm.  I just tested it and it looks like libpq actually explicitly throws an error if the certificate files are present in ~/.postgresql/ but don't have the correct permissions, even if the user hasn't explicitly asked for them to be loaded.  That renders the point I made above invalid, as the only reason we're loading from ~/.postgresql in the first place is compatibility with libpq.