In my opinion Thumb2 is the ONLY time arm got anything right in their instruction sets but do not be fooled into thinking thumb is more space efficient than arm or that thubm2 is more space efficient than arm or that any of them execute code faster than any other.
The choice between ARM and Thumb2 basically boils down to this. Will you be 100% self contained and make no calls to external libraries? If so pick either and be done. If not... you need to know when to call external functions with a bl and when to call them with a blx - if you are coding in C I think the compiler should know which branch to use.