Anonymous user form submission
Implementing hook_user_insert() this way (calling drupal_goto() inside) is plain wrong:


if there are any other implementations of this hook in other modules meant to be called after yours, they will not get called at all
if for whatever reason hook_user_insert() from user module will not be called before your implementation, the user will not be saved at all
if you look at user_save() function in user.module, you'll see that after invoking 'insert' hook there are many other things this function is doing, so if you use drupal_goto(), they will not be done.


What you can do though is to add your own submit function to user_register_form, and in that function set $form_state['redirect'] to wherever you want (note that updating $form_state['redirect'] in hook_form_alter() will not work in this case, as user_register_submit() sets its own redirect, so you need to do it after this - hence the need for your own submit).