If I am thinking of making a circuit board for a shield, I find it quite easy to plop down a microprocessor footprint and associated circuitry right on the board. With this approach, no Arduino board is necessary.
For programming, it is easy to tack solder the 5 connections for an external serial USB board, creating a temporary programming dongle. Plug in a processor with a boot loader, tell Arduino’s IDE you’re connecting to a Duemilanove with 168 or 328, and it uploads your code and supports serial communications just as if you’re using a real Arduino board. This approach worked fine for an update of my Arduino Whole House Telephone Intercom.
See Whole House Telephone Intercom Update for a 3D CAD rendering of the board. Since that page was posted, I have built a working copy and programmed it using this technique.