Ah, well. Perhaps that means that fully automated 3d-printing is not possible -- the user has to manually enter the positions of obsidian for each layer in the correct order to prevent cave-ins. Though, maybe, some sort of dwarfputing contraption can be made to make sure that the "supporting" (those that aren't a part of an overhang) tiles of obsidian are the first that are printed... I'll look into it.
EDIT: I think I've found something. In the dwarfputer, there will be a bridge and two layers of hanging floodgates like taptap described, on top of which will be a water source, and beneath which will be an equally-sized square of pressure plates. To print layer x (assuming x!=1), the following happens:
1. Load the obsidian positions for layer x into the top row of floodgates.
2. Load the obsidian positions for layer x-1 into the bottom row of floodgates.
3. Open the bridge.
4. Print the tiles corresponding to the pressure plates that were activated.
5. Close the bridge.
6. Open all bottom floodgates to flush out remaining water in the top layer.
8. Load the inverse of the obsidian positions for layer x-1 into the bottom row of floodgates (that is, close the floodgates corresponding to obsidian, and open the others.)
9. Open the bridge.
10. Again, print the tiles corresponding to the pressure plates that were activated.
11. Close the bridge.
12. Flush water out again.
Note that during the first print session, the activated pressure plates correspond to tiles that are supposed to be filled with obsidian for both layer x-1 and layer x, which therefore are tiles that are not part of an overhang in layer x. The second print session prints the rest of the tiles (inverting the second layer of floodgates was simply to make sure the same tiles aren't printed twice.)
The dwarfputer will be very complex to design completely and build, and will probably also be bigger than the construction area itself, but I think it's doable. We're dwarves, aren't we?