> 3) For generating DB tables (aka schema creation), we create a separate component
The schema definition code should not be moved into it's own component. It belongs very close to the code using the schema. So I don't see a sane way of getting rid of all code that depends on DBAL in a sane way. We could create our own implementation of this functionality again, though I do not consider that to be a sane approach. The code in question will not be executed on the WMF cluster though. And if you want to be really paranoid about it, you can just delete dbal from the build before it goes onto the cluster, and be sure it is indeed not executed.