One of the things we're running into is doing concurrent updates on a document. Robert Engels pointed at a solution which is to save pending operations, I think it's possible to go one step further.
One way to solve this would be to use BDB as storage for the actual data (perhaps also the Lucene index, not sure yet). This would allow for updates, deletions, and versioning, without forcing Solr to store all fields and data. Each BDB row would have a marker that Solr could look at periodically (on a commit) reindex. I think this would solve the concurrency issues.