I am fairly new to the Xindice source code, so forgive me if I have missed the point.
It seems to me that Xindice started out as a standalone server only implementation, where using a dedicated configuration file makes a lot of sense, and has now recently moved on to also function in the embedded mode. As an embedded db, it seems odd that you need a dedicated configuration file. I noticed the Configurable interface/class, but I haven't seen it being used to configure the db.home when using org.apache.xindice.client.xmldb.DatabaseImpl and the embed: pseudo-protocol, the configuration is delayed, so properties set on the Database object could be applied to a Configuration object and then fed to the chosen driver. Wouldn't this make sense ? If this is a to-do item, then I volunteer to do it.