I\'ve learn a while ago on StackOverflow that we can get the \"instance ID\" of any resource, for instance:
var_dump(intval(curl_init())); // int(2)
var_dum
I don't have the PECL runkit enabled to test this, but this may allow you to remove the constructor code from the class definition after the first time that an instance of the class has been created.
Whether you can remove the constructor from within the constructor would be an interesting experiment.