sorry for the slow answer ...
In PRCommand, there is no more #doInitialize method. I've read
Monticello comment, but don't understand why you remove it.
there are several reasons, but mainly this is a speed optimization:
commands are often instantiated to check permissions and query
availability, without actually requiring them fully initialized.
Using lazy-initialization ensures that we don't have to fully
initialize them if not required. Moreover it is easier to load
objects from different (older) sources and the initialization always
happens in the right (natural) order. This is especially useful if
the class evolves or we have class-extensions within the command.