I have two problems using this approach. 1) often a layer's previous contents are left on the map (not removed), and 2) periodically, the entire map is repainted for no apparent reason...
If I slow down my updates, I can make the first problem go away (not a practical solution for the real world...). The second problem occurs regardless of how fast or slow I send my updates.
There is an open bug at ESRI regarding this issue - partial refresh actually refreshes all layers instead of taking the given parameters into consideration. It is open since version 9.3.1 but occurs also with 10.0. I managed to work around the problem in one of our clients' application by using IViewRefresh::AnimationRefresh.