The big downside with this is that you can't use function pointers or addresses to static memory (which means need to be careful with e.g. string literals). This is a pretty heavy restriction, and is too much of a limitation for a lot of cases.
Not to say it's not valuable, it's great. I wouldn't exactly say it's common though.
Not to say it's not valuable, it's great. I wouldn't exactly say it's common though.