The master/slave logic could easily be pushed into db-specific code, as has been done with db/LoadBalancer. It is an installation-specific concept, and I believe it should be decoupled from core code.
Most queries can be directed to the correct server based on Database::isWriteQuery, and in exceptional cases a flag could be provided, to select from master.
Version: unspecified
Severity: enhancement