I spoke with an electrical engineering about how to take an Arduino prototype to mass production, and he warned me that the code written in the Arduino IDE cannot be fused onto the processor.
That's nonsense. The output from the IDE compiler is a .hex file which is then sent via
avrdude to program the board. If the output cannot be "fused" onto the processor how does he imagine we ever get anything done?
Possibly he is referring to changing the fuses to make it impossible to read the code back from the chip. This can be easily accomplished.
He said that I would probably have to take each product, and load the Arduino code on manually, plugging in each one to a computer and upload like one would when prototyping.
You have obviously spoken to someone with no experience in Arduinos, possibly one of those engineers with an active dislike of it.
I have written code to run on an Arduino to upload sketches to another board.
You can read about it at Atmega chip stand-alone programmer to upload .hex files. The idea is you take your .hex file, put it onto an SD card and then program your target board in a few seconds.
User "Crossroads" from the Arduino forum has taken that idea and made a stand-alone board, looking like this:
You put up to 255 hex files onto the SD card. You dial-up which one you want with the rotary dial. You plug in the ICSP cable into your target board, and hit the "program" button. The whole thing takes a few seconds.
It is designed to be used "in the field". All you have to do is plug in a power-pack to supply power to it.
If you needed to protect the target boards with a fuse setting after uploading, you would modify the code in the programmer slightly to do that for you.
It would be helpful to have an ICSP header on your target boards, both for programming before deployment, and in case you find a bug and have to change it.
Failing that you might put the chips into a suitable board first (eg. with a ZIF socket), program them off-board, and then solder them on. There are lots of options for you.
Also, he said the other option would be to recode my Arduino sketch from scratch using an AVR code.
I don't see why that would be necessary, in any way.