I've recently begun work on maintaining and adding functionality to an existing product using the Chipcon CC1010. <snip>
"Doesn't the compiler normally complain about reentrant functions in these scenarios?" Not necessarily. The problem is that the compiler (and Linker)can't necessarily tell at build time that you have potentially reentrant calls via pointers. That's why you have to understand the issues first, and write the code accordingly.