Interesting reads (especially the latter). Something I was unaware of in that (if the writer is correct): 'foreach' uses a try/finally block as well as 'using' ?
Also I wonder if it would make sense to have an alternate 'light-weight' exception that didn't build up the stack trace info.....