Thumb dates back to at least 1994-5, so should have pretty good support at this point. Most ARM7 and ARM9 processors utilize it, the Cortex-M3 cannot run ARM 32-bit code at all. Unless you are using stone-age tools, you'll be fine.
Disadvantage, not useable for interrupt handlers in ARM7/9, access to a smaller register subset. Can be slower to perform the same operations, ie can require more instructions to do same thing.
Advantages, better code density, better cache utilization, more effective on 16-bit memory devices.
Yes, SAM-ICE will work with Thumb code.
Yes, Your C compiler should generate code just fine, and the linker/compiler should be able to handle the calls between 16/32 bit code just fine. It's been used everywhere for well over a decade, so you are very late to the party.
http://www.eetimes.com/discussion/other ... -ARM-thumbYou'll have to look over the assembler code, it is mostly a subset, with less instruction combinations, and less registers.
The ARM7T parts can run both, and switch transparently, so the need to rewrite anything is pretty small, just recompile and link, and transition the parts that are critical.
If you plan to migrate to Cortex-M3, consider what code needs to be in assembler. Thumb2 is more comprehensive.
The interrupt handler issue mentioned as a disadvantage only impacts the routine being called by the processor, the interrupt handler routine can subsequently call other routines written in Thumb.
If you think 30% improvement in code size is good, you should perhaps be trying the Realview/Keil ARM compilers which are real embedded compilers, and do a much better job than GCC.