I find the idea of BitCoin interesting, and I looked into its source code a little bit. I find it a bit monolithic and I thought it would be a good idea to extract the non-ui (and by that, I mean every UI, including RPC and command line) code and create a new library out of it.
This way, it would be easier to create alternative clients as well as bindings to other languages (Python!!!).
As anyone thought of it yet? Is there a particular reason why this would be doomed to failure?
There is the Bitcoind software that can be used as a library with an API already implemented if you choose to perform actions on the Bitcoin network but don't want to re-implement the whole protocol. For about 80% of the applications I can think of, that would be more than sufficient.
If you are trying to tweak performance, yes a library of functions that allow you to connect to the various parts of the Bitcoin network would be nice as well. When are you going to write it?