En la propia documentación de jquery te indican que la segunda opción es la correcta:
http://api.jquery.com/click/
Supongo que hasta que el documento no ha sido procesado por el DOM del navegador el script no puede cargar el evento .click()
Se me ocurre que que al ejecutar $("#").click(function() la jquery podría crear internamente un array con todas las etiquetas que concuerden con "filter" pero si lo haces antes del documento el array estaría vacío.