This was a nice read... anything involving ACID makes me happy (er, that sounds bad), but I missed a key point somehow. Are you writing data blocks once or twice (once to redo log, then much later check pointed somewhere else?)
It does seem an awful lot like a RDBMS. But even postgres has some quirks, like indexes never shrinking, vacuum sometimes always running in the background and thus taking forever to free up space on large tables... so your blurb about 'defragmentation' made me realize that for open source projects, zero-admin-maintenance is certainly a very high goal. Cheers.