how to use hook_field_widget_form I am trying to understand how the addressfield module is using hook_field_widget_form. When is it called and where are its parameters coming from? When I do a printout of its $instance parameter, I see that it has default values. Where are these set?
The hook is called by the Fields Widget API in order to collect information about defined widgets. Any module can define a field widget as long as it implements the necessary hooks.

Documentation about the hook itself can be found in the docs: hook_field_widget_form().

Basically it provides widget specific Form API elements that collect the necessary data for a field. The default values are set in code (or wherever the module chose to define them) and should provide sensible defaults. In the case of the Addressfield module the default values are defined in the function addressfield_default_values in the main module file addressfield.module.