1. Am I missing anything, is there any reason why this wouldn't work?
Yes it can be made to work. The current Arduino IDE has the ability to add other chip types in a hardware folder placed in the user's sketch directory. There can be placed the file changes and additions need in pin mapping, bootloader hex files, board.txt file, etc. 2. Has the pin-mapping code for the 644 (or similar) AVR processor already been written? I could not find it anywhere online, but I'm surely not the first person who wants to take an Arduino prototype to a custom PCB.
Member maniac started quite a project to get the IDE to support the AVR 1284P 40 pin DIP chip supported which is the same pinout as the 644P. Building on that others have added the minor changes to support the slight differences need to support the 644P chip. However I would suggest to just go ahead and design for the 1284P as it does have the same pin out but adds lots of extra flash and SRAM memory space over the 644P. It's the current king of the hill in AVR DIP packages. 3. Is there an easier way to do this?
So go here and study up on maniac's web page, and check out the links for details. Several of us have 1284P/644P boards up and running with arduino IDE 1.0.3 and there has been lots posted on the forum in the last month or two about our trials and successes, all ending up at happy places.http://maniacbug.wordpress.com/2011/11/27/arduino-on-atmega1284p-4/https://github.com/maniacbug/mighty-1284p
I'm using the PCB that member CrossRoads sells that uses through hole components and has the standard arduino shield layout. I can run this board with either a 1284P or 644P chip.http://www.crossroadsfencing.com/BobuinoRev17/ATMega1284_thruhole_sch1.png