Yes, e.g. the booking example uses facesmessages to display validation messages for a input onblur event.
Yes, but I've the same code for my jsf page, and I get a "FacesMessage(s) have been enqueued, but may not have been displayed". The validation message appears next to my input field, but I get this
I also get this message when I add messages to the FacesMessages, from a java bean (with facesMessage.add("Hi, I'm a message")) and when I just re-render a part of the page.
Then you also need to rerender the message component using an a4j:outputPanel