what about lots of square images all overlapping in a giant L shape
Grey, don't forget that if you use the splitting rectangle method it will slow right down if the second rectangle is higher than the first one you drew. Remember that it is best to draw in Y order so that you can draw as much as possible with the sunchronization of the display.
My method is a bit loop intensive as you say but that is not what slows the operation down - its the drawing that slows things down. Thats why the scanning method that I mentioned might be a better alternative because it will always draw from the Minimum Y coordinate to the Maxaimum Y coordinate - keeping things fast!
Use writepixelfast to make it even faster.