in reply to Methods, within a class, pass callbacks; how to deal with that in derived class?

Is calling a callback i.e. code reference as method on an instance the accepted and OK practice, to begin with?

What it is doing is normal practice. I would say it is not calling it "as a method" - clearly there is no method lookup occurring here. The callback is documented (by comments) as a private function, and as such it is not expected to be overridden. In this case $self->$callback(...) is just a convenient alternative to $callback->($self, ...).

Maybe you can explain more about what you are trying to do: how is your subclass of CAM::PDF intended to differ from the base class, and how does that affect what setObjNum should do?

Depending on your intention, it is entirely possible that your class should implement its own setObjNum to do what it needs to do independently, either before or after calling the SUPER:: (or maybe NEXT::) method. Or you could wrap it with some variant of Moose to use one of its before, after, around keywords.