That could be added to the tests I suppose, but the unit tests were there to demonstrate that db_for_write was never being called in the first place. 
In the case of sharding, locking an object to the DB from the related object is probably the right answer. In a simple master / slave setup though, it's not. The original object would have been fetched from db_for_read, so even though we have a hint we would want to override it anyways.