One thing about interfaces of graphic programs I recently realized is - they all force the user to decide up-front how big the image is going to be, and where it will be placed in the frame.
So if you "paint yourself into a corner and want to extend the image one way - you have to select everything, move it, and scale the canvas or the selection aproprietely.
This could be done automatically by the program every time you add new details. The canvas could just as easily be infinite.