То, что вы описали, часто используется в компонентах Joomla например
Компонент должен работать и в 1.5 и в 2.5, но в 2.5 удалили функцию, которая была в 1.5 или ее переименовали, и она используется в этом компоненте
Для этого и пишутся там такие хаки, которые по требованию создают нужную функцию
Ничего в этом хорошего нет, но это ведь legacy code :)
Подобный код часто встречается в библиотеках мечтающих о mbstring, в автолоадере проверяется наличие нужных mb_* функций и если что-то отсутствует — объявляется свой костылёк
Как каз сегодня пришлось писать curl_reset внутри функции класса что бы заработал сторонний компонент. Что удобно, функция создается только в том случае, если не была определена. Так что функционал должен присутствовать.
Одна из особенностей PHP, связанная с методами и функциями