hook_form
is used both for adding new nodes and editing existing ones, and no parameter is passed to describe the current operation.
Why is it not needed ? Because a simple test can show whether the node is being added or edited:
If the test succeeds, the node has already been created and someone is editing it. Otherwise, it is being created.
This can be important for node modules generating values beyond $node->nid
for the nodes they handle.
Good point