The EPDC itself will do some amount of magic, but, generally, yeah, only repaint/refresh damaged areas.
That's only for *refreshes* though. Painting will always paint
.
As far as FBInk is concerned, you can draw without refreshing the screen, which is useful when you have a bunch of small things to draw in a short amount of time that you only really care about displaying at once.
That usually involves setting the no_refresh flag in your FBInkConfig instance, and then doing a manual fbink_refresh call at the end of the batch, with the appropriate region to encompass all your new stuff.