Not really- all ```_allocate_state``` is doing is setting ```self.state``` to some value. To me, it seems like the developer actually has to have *more* knowledge in order to correctly implement ```_allocate_state```, since the dev has to:

- know to override the private method
- correctly set the exact attribute ```self.state``` to something (otherwise things will break)

I was thinking that the ```Workflow``` constructor could handle setting that attribute for the dev. I don't think this requires the dev to have more knowledge about the inner-workings of ```Workflow```. In either scenario, the dev is required to know how they want to "allocate" state.