Isn't bitcoind the exact same software, but with the "-server" flag?
Bitcoind is compiled from the same source code as the main Bitcoin with a user-interface, but it is two different packages created from two different makefiles. As far as network connections are concerned, it is the same software where they both look and behave identically.
What you may want to look at is this page:
http://www.bitcoin.org/wiki/doku.php?id=apiAlmost every function from examining the structure of the blocks & transactions to sending & receiving coins is there.
The primary advantages I can see to perhaps creating a new library is to permit some hooks that allow changes to block inclusion policies for miners, different fee schedules, or tweaking some of the network protocol to include new messages or "services". Some of that may not even be supported by a library but rather simply re-implementing the protocol on a more basic level in the network itself.
It depends largely on what it is that you are trying to do, but I am suggesting that if you don't want to put the effort into writing the library yourself or to re-implement the whole protocol, that using the JSON RPC library is a good way to get much of what you may want to accomplish. It is deliberately set up in such a way that you can access the information about Bitcoins without having to provide all of the features that a full re-implementation would force you into.
Mind you, I'm not even dissing the concept of perhaps a better connected library like libpng which allows you to render images of that graphic format. What I am saying is that the library does exist after a fashion and if there was something specific to add to the already existing API might be a better route to take unless you are doing something on a very low level related to the network itself. Certainly you could largely re-create a custom user interface for a specific application using the JSON API going through Bitcoind as it is currently implemented.