As you are not going to stay with arduino forever, and gonna to drift to another mCPU / platform, there is one aspect I came across recently:
Maple Rev 1 attempted to run both DFU and CDC ACM devices simultaneously on the USB peripheral. On Linux, this worked great. The OS would service the DFU driver during uploads, and the CDC ACM for serial port transactions. There was no reset necessary for uploads. No waiting. The bootloader was always running the background, ready to receive commands.
The problem was that only Linux did this. Windows refused to attach more than one driver to a single USB device without repackaging the DFU and CDC ACM into a single IAD Compound Device. It’s not terribly important what this means, except for two things.
Four drivers were necessary to make everything work.
IAD is not supported by OS X.Mac OS X, on the other hand, only supported Compound USB, a different trick that is not supported by Windows.