I used a single installation of eZ to run several sites, with separate databases. It worked well, although I tweaked the admin templates to ensure the admin users for each site access could only modify their site accesses.
You might want to try setting the site.ini database access parameters for the different site accesses to different databases, and making sure that the global site.ini doesn't override them.
This is the cluster that is problematic, and especially how and where eZpublish will fetch images in BDD. The index_cluster.php is the solution, but for different reasons, including performance, we must declare once again the login at the base. When we have two BDD, there is a problem.
Carlos, I think your method is ok. Myself, I would create a index_cluster2.php with the configuration of the other BDD, and I would change the RewriteRule according to the HOST(RewriteCond) in the Virtualhost.
+ +
[EDIT]
Or, with just one index_cluster.php (if the id BDD are the same) you could spend the name of the BDD argument directly from the Virtualhost and retrieve it in your script;) [/EDIT]