Well, you're going to burn when someone decides to subclass $package and override $function, whereas jdporter's code is going to keep on working as (probably) expected. Or when someone's going to refactor the whole code and move $function to a superclass of $package.