Once I have a "complete" project - all code working the way I want - can I then pull out the amega8 chip for use in the permanent circuit and then put a new amega8 into my arduino board for further learning?
In other words, can I
pull a programmed amega8 from my arduino board
wire up power and all needed i/o pins
and pretty much expect it to work?
Is there a better method? For each "complete" project I just want to make one or two copies.
Yes you can, but at the very least you'll want to include the 16MHz crystal and its load capacitors on the permanent circuit.
When you add the new ATmega chip, you will have to burn the bootloader using an icsp programmer before you can do anything else with the Arduino. And you might want to consider using an ATmega168 instead of an ATmega8 as the new chip. It has substantially more memory and is not much more expensive.