I'm a gcc user partly because of the optimization. I mean it's a pretty small difference. But still for scientific stuff gcc is slightly better I think. There's not much difference though and it basically comes to personal preference.
I haven't dealt with HPC in a while, but Intel C compiler against MKL libraries were fastest CPU, and Nvidia CUDA was slightly easier to develop than OpenCL for other cards. I'm not sure if the situation's changed.
For my current applications, I use NumPy compiled against Intel MKV installed as a binary. It works great.
Good question. I didn't know about decltype. I guess they are slightly different in that decltype will also produce a type reference. Typeof just produces the type, even if you call on a reference.