But lists are not particularly efficient.

My beef on OODBMS's is

1) Transactions have be kept really fine grained from the standpoint of the developer or you overwhelm the transaction manager and they thrash.
2) Locking is always too coarse - lock contention is a big problem.
3) Indexing is whatever indexing you do by adding objects to keyed collections. Adhoc queries are not practical.
4) Schema migration is nearly always really hard if not impossible.