Were trying to avoid the need for building a custom windows driver at all costs.
That is the killer for me. Many UK schools can't/won't install a special driver. End of story.
If you guys decide to remain with a special host-side driver for windows, please tell me ASAP, because I will have to change my plans. I will probably use LUFA or the ST USB serial source along the lines I emailed.
I spoke with mbed about the dual-purpose usb issue (such as DFU+ serial, or serial+mass storage, or whatever). Due to the same problems being described in this topic, they ended up going with a custom driver that simultaneously provided the mass storage and serial support.
AFAIK, mbed have the resources of ARM behind them. They can probably afford solutions which are impractical for smaller companies. (Sun Tzu might say use their strengths to defeat them :-)
Sadly, a single USB serial device is likely the only viable solution across all the platforms.
It *must* be serial so that a running program has comms, and so a bootloader *must* use serial too. IMHO not too difficult to work out, once you've got past a few basic assumptions.
Every other solution I've thought of either needs the board to detect the host platform (:-(, or specialised programs on the host. The later option destroy many of the intersting options, like using Processing, or even shell scripts, to communicate with the board. You get into supporting a load of platform specific programs which squanders resources, and will never be enough to satisfy all customers, or prospective customers.
FOCUS is key.
This is particularly annoying since linux and mac both natively and easily support compound USB devices, its just windows that is biting us on this issue.
In my world, those windows machines aren't going to be upgraded in the next few years, so they are the ones to get working on. Everything needs to be as simple as possible (but no simpler :-)