I was thinking of coding a rudimentary program to do something like this. It would require a lot of manual intervention, at least at first, but I'm ok with that.
The big problem with the current programs that are out there is that they rely on pool APIs which only provide current and 24 hour PROFIT calculations (as was pointed out), and the APIs often don't update frequently enough. Difficulty is typically one of the bigger factors in these profit calculations, but if it updates too late, you'll get stuck switching too late (i.e. on the upward difficulty swing).