I think the Arduino board should have a dock.
I mean that the part that connects to the computer should be a separate module from the Arduino board and would be called a dock.
When the Arduino runs seperated from the computer it does not need many components (and it could be "slightly smaller". The way the board is designed, it can easily be split in two.
Also you could buy only one dock (usb,serial or wireless version) an many Arduino boards. You just hook em to the Dock once you want to program them, or interact with the microcontroller.
The serial version of the board (I find hardware serial ports are more reliable than USB-Serial) could be updated. The docks could also be intercheangle. For example, you buy one serial dock, and one usb dock. The Arduino board could use both.
The dock and the Arduino board could be connected by a 4 pin cable: +5v(from USB), GND, TX and rX.
The final bonus, is that the dock could be used with any other device use 5V level TX and RX.
you can see the evolution of almost all the arduino boards including the last module which are the arduino stamp and its USB interface.
We experimented with this tiny smd module that has the same pinout as the Basic Stamp or BasicX 24. On one of the sides there is a standard pinout for RX TX GND and 5V that matches the USB module.
We also made a Bluetooth module with the same pinout and a small sensor module that matches the board on the other side.
I realise my explanation is a bit messy but it was just to give you a preview of stuff that will be available in the near future that goes in the direction you mention.
After some thinking, I think the connector between both modules should have more than RX,TX,5V&GND:
at least two more pins connected to digital pins of the ATMEGA8.
Here is why:
I am using a wireless zigbee module connected to the Arduino Board. I have two copies up and running. One receives and the other sends the data. If I reset the receiver Board, it will still receive wireless data while it is loading and will therefore stall in bootloader mode! So what I thought is to use a pin of the ATMEGA8 to gate the wireless input data. When the microcontroller boots, it blocks input data unless it runs its code and sets pin 3 (for example) high to activate the bridge to the wireless input.
The connector could be similar to an ICSP connector (it should be polarized). I prefer connectors to "shields" because they faciliate the custom setup of the boards in small spaces (the can be set at various angles and distances).
Another advantage of adding pins to the connector would be a serial multiplexer. The ATMEGA8 could select between 2 different target devices. Here is the idea:
hey, nice!
the small smd arduino looks like this Atmega8 board:
I allready used them with arduino, worked like a charm (only the clockspeed is different, so I changed the bootloader).
I'm currently in the hassel to swap that f'ing small MLF Atmega chip because I burned one... it's quite smaller than the TQFP version allready is.
Also check out the littleUSB board on the same site. a super small micro-USB to serial adapter in DIL16 package!
That would be a nice "dock" for arduino. I'm allready using like this for my custom arduino based 8x8 matrix module. But so far I could'nt find a bluetooth module with the same footprint. That would be really nice! Only this similar small one: http://www.promiserial.de/promiesd02_e.htm
Are you going "software USB"/HID (AVR USB) for future arduinos? Like some suggestion I found via make's electro blog.
i've been thinking along these lines for a little while now... then yesterday i found this: BittyBot Products -- MEGAbitty
and there are extra parts on that board that arduino doesn't need... the thought makes my mouth water!