Because most MODs will likely break (afaik) between 3.0 and 3.1, why not just go ahead and rename such "problem" functions to include the phpbb_ prefix by default without worrying about MOD breakage?
This way, most boards with MODs will continue to work. If you require compatability with 3rd party software, you will have to use compatible MODs too.
In addition we might want to encourage MODs to move to the new function names, by throwing E_NOTICE in the compatability function in debug mode. Thoughts on this?
Yes. We could require MODs that add new functions in the global scope to prefix them with phpbb_%mod%_ (where %mod%) is a "short name" for the MOD.
Coincidentally, I have been looking at drupal recently and have been doing some initial work on a small drupal module (aka extension). The way they do their hooks in they require a file in drupal/sites/all/modules/ that is module_name.module. Any function in that file that is prefixed with module_name_ and is found as a hook is then called in the main program. (for instance, if a hook called "foobar" is called, it will search enabled modules for functions called %module_name_%foobar).
At the very least, we could require MODs and extensions in 3.1 to require some sort of prefix, whether phpbb_ and the mod short name or just one or the other, to prevent compatibility issues.