Agreed... but if someone is scheduling downtime for a slave, I would *hope* they don't just blindly take it offline (even if there was a failover mechanism at the application level).
Yeah, it should be handled at the server level imo. If someone has the actual need to go down the road of a multi-DB setup, I think it's fair to say that they should have the knowledge on how to run/manage their DB servers properly.
You could make all sorts of "what if" scenarios of things that really shouldn't be handled at the application level... what if your web server goes down, should the app try to restart it? What if network goes down, should the app try to change the routing tables on the server to try and route around connectivity issues?
Personally I don't think the front-end application should be managing any of that stuff, and it has no business trying to make decisions on what to do if a server fails (DB, web, memcache, etc.)