Pero vamos a ver una cosa, vos sabes pq te tira "Acceso denegado"? Es que me da la sensacion de que para solucionar el problema parcheas quitando o agregando cosas, y la idea es solucionarlo para que vos y yo aprendamos. Yo no soy un profesional usando este tipo de hooks, solo busco tus soluciones en la web de Drupal, para saber como actuar en caso de que me pase un problema parecido al tuyo!
Asi nunca vas a aprender!
El access arguments es la lista de permisos que debe tener el usuario para poder ver el page callback, si vos no tenias generado, con el hook_perm, un permiso llamado "Recomendar web", entonces siempre te va a tirar un 403....
Con respecto a tu problema, lo que hice yo fue entrar a la web de la api de Drupal, y ver como funciona la funcion drupal_get_form:
http://api.drupal.org/api/drupal/inc...pal_get_form/7
A esa funcion le pasas la id del formulario, y si una funcion con ese nombre existe, entonces devuelve el formulario que se genera dentro dentro. Osea en "recomendacion_escribir_mensaje_form" deberias generar un formulario dentro de la variable $form, y retornarlo. Si lo generas vacio, lo mas logico es que no te muestre nada, que es lo que te pasa a vos ahora mismo.
Saludos.