Это чисто технический вопрос. Во втором варианте у вас метод не привязан к классу(ам). Во первом у вас есть обращение к $this, так что это уже ООП. С кодом из первого примера будет легче разобраться через год.
Интересная задача. А попробуйте вытянуть имена классов помощи get_declared_classes() и переопределить их пустыми: class Foo {}, используя eval() например. Расскажите, какой эффект был.