No, no Puoi ridefinire anche funzioni interne del php, basta impostare un certo flag nella configurazione ini, qualcosa tipo runkit.internaloverride (non ne sono sicuro, guarda nel manuale).
E cmq non gli passi del codice c++, gli passi sempre del codice php.

Guarda, puoi fare cosi:
runkit_function_rename('mysql_query', 'mysql_query_strae');
E tu usi nel tuo framework la funsione mysql_query_strae()

Cosi lo sviluppatore di plugin non sapra' che pesci pigliare

Oppure:
runkit_function_copy('mysql_query', 'mysql_query_strae');
runkit_function_redefine('mysql_query', '$query,$link','
//faccio i miei controlli per trovare link attivi, o guardo semplicemente il numero degli argomenti
//mostro eventuali errori
mysql_query_strae($query,$link);
');

Cosi la ridefinisci, facendo dei controlli prima.
Tutto questo e' da fare ovviamente in una porzione di codice che viene eseguita prima che parta il plugin/modulo.

Se hai dei problemi con runkit, anche apd dovrebbe avere delle funzioni che permettono di ridefinire delle funzioni.