I have experimenting with ISO_C_BINDING. There are some cases where a pure routine is useful, but something as trivial as C_LOC() is not pure in Intel Fortan. From the F2003 draft, 13.1: "All standard intrinsic functions are pure." Since F2003 is a stadard intrinsic module, are those functions included? This detail seems to be left out, at least for the draft version.
It seems that C_F_POINTER should also be pure, but F2003 says that the only pure subroutines are MVBITS and MOVE_ALLOC.