If you intend to carry your printer around with you, then a laptop makes a lot of sense. With a Pi, you would have to carry around a monitor and a keyboard, a somewhat more bulky pile of stuff.
I'm not planning to carry my printer around much, but I will probably relocate it to a place not close to my desk some day. I will attach the Pi to the printer frame, much as the Azteeg is attached, and monitor and control the print through the network. (Also might want to watch the printer work. The $25 HD camera coming from the Raspberry Pi Foundation next month ought to be quite sufficient.)
This would not be a significant change from my current workflow. I only use the Pi to run the host software, and use a more powerful computer (with a much larger monitor) to run Slic3r standalone (and also to run openscad and everything else I need). (I have run Slic3r and openscad on the Pi, BTW. They work fine there, although they would probably slow down tremendously if large and complicated parts were attempted, as the Pi's 512MB of RAM would run out and it would start swapping to the SD card.)
BTW, if you want to see how a host controller does its job, check out this file:https://github.com/kliment/Printrun/blob/master/printcore.py
It's not very long, only about six pages long if you printed it out.
It contains all of the basic functionality required to control a Bukobot from a host computer.
Well, almost. It's a library, so you need to call it from something. This is what you do:
Connect your computer to your Azteeg controller, and power up. Install pronterface into the usual folder, if you haven't already. The file mentioned above will end up in that folder. Also copy a gcode file you want to print into that folder.
Open a terminal window, change to that folder, and start up python by typing:
Then type the following into the python interpreter (changing the constants as needed for your system):
pr = printcore.printcore('/dev/ttyUSB0', 250000) # USB port device, baud rate
f = open('yourobject.gcode') # the file you want to print
lines = f.readlines()