I think it's really easy to misinterpret how fundmentally simple the Arduino is at first glance.
If you keep telling yourself that it's really just a standard AVR Microcontroller (and at that point nearly identical to a PIC solution) and what's been done is these nice guys got together and made a "wrapper" around all the hard stuff... so people can create right away with the Arduino versus spending hours figuring out what you additionally need to buy (IE; HI-TECH PIC-C, CCS-C for PICS, Hardware programmers PICKIT2, etc) unless of course you are happy programming in PIC assembler.
I think one of the main goals of Arduino was... Buy it, start coding right away and trying stuff with no major expenses beyond the board itself.
..but still needs WAY other components to be added for the final goal
At a basic level, this is not totally true. You literally need no more support hardware than your average PIC solution. That is, if you don't mind giving up some convenience build that was into the Arduino. Some of these conveniences are wasted if you are making a final design.
You don't HAVE to have the USB interface... but it's nice. You could just as well have an FTDI/RS232 break out board handy that you attach as needed when you want to program.
You don't HAVE to have the large "board footprint" unless you plan to buy and attach "shields". You don't need onboard LEDS's unless you feel you need them. Personally, I prefer the Breadboard compatible "boarduino" for development.
So the most basic items in a final design would be Reset Circuit, and 16MHZ Crystal with 2 20pF caps. That's not any different than a PIC... and with some playing around and some external hardware, you could still do the Bootloader based serial programming as needed.
If you eventually tire of the Arduino solution, with no additional expense, you can migrate to the AVRGCC (real C/C++) solution... or as I like to call it... the AVRgeeks graduation present for persevering with the easy C-like syntax of Arduino.