Why Williams should keep Rubens:
It appears that, for the first time in a while, Frank and Patrick have confidence in the feedback given by a driver. As a result, for the first time since maybe 2004, the Williams will end the season faster than it started. Rubens, unlike other highly regarded test drivers, can actually race and score points. As a plus, the most experienced driver ever should be able to help develop a young gun in the other seat.
Why Williams should keep Nico:
Nico seems to be improving decently. He had glimpses of speed, but seems to be more regular now. He should also learn his trade properly with a teammate like Rubens. Nico looked brilliant in GP2, and has won all the other junior formulae he's raced in. There's nothing stopping him from becoming an F1 star, even though it seems he won't be a legend.
From the strategical point of view, Williams need to develop the car "in a budget", and they also need a fast driver. At least one. However, it's difficult to see how any of the proven race winners (other than Rubens) can end up driving for Williams. Even Renault seems like a more attractive team. In a similar way, the hot prospects may also go for a seat elsewhere... and there aren't many hot prospects available for F1 right now.
Now, what Williams need to do is stop babbling about their drivers and beating the crap out of Force India in Brazil and Abu Dabi.