It's the wallet implementation in bitcoind (which uses berkelydb) that has performance/scaling problems, not the block chain handling (which uses leveldb).
The 0.9 release will include "disable wallet" mode, and I expect in time that will be the recommended way of running your own full node. You can use any SPV-ish wallet client (or multiple!) on top.
Sure, because you'll need to cross verify the txs, and it's not that easy with no direct leveldb access and only json capabilities of bitcoind, and I'm not sure it's possible to partly lock leveldb to make a transaction atomically.
You may be able to do what you want through the raw transaction API (createrawtransaction/signrawtransaction/sendrawtransaction/getrawtransaction). There is no direct leveldb access but there are low-level queries in the JSON interface.
You can also lock specific outputs from being spent using lockunspent.