E quando você ta clicando no botão alterar os seus campos não estou indo pro inputText? Seria isso? Então ta faltando você atualizar a pagina quando você clica no botão, tenta assim ok?
No seu primeiro form que os input estão dentro da um nome para ele.
<h:form id="teste" // aqui coloca um id ok?>
<p:messages id="messages" />
<p:fieldset legend="Dados do Livro">
<p:outputPanel>Dados do Livro</p:outputPanel>
<p:panelGrid columns="2">
<p:outputLabel value="Titulo:" for="titulo" />
<p:inputText id="titulo" value="#{livroBean.livro.titulo}"
required="true" requiredMessage="Título obrigatório"
validadorMessage="Título não pode ser superior a 40 caracteres">
<f:validateLength maximum="40" />
<f:ajax event="blur" render="messages" />
</p:inputText>
<p:outputLabel value="ISBN:" for="isbn" />
<p:inputMask id="isbn" value="#{livroBean.livro.isbn}"
validator="#{livroBean.comecaComDigitoUm}"
mask="999-9-99-999999-9">
</p:inputMask>
<p:outputLabel value="Preço:" for="preco" />
<p:inputText id="preco" value="#{livroBean.livro.preco}"
label="Preço">
<f:validateDoubleRange minimum="1.0" maximum="1000.00" />
</p:inputText>
<p:outputLabel value="Data de Lançamento:" for="dataLancamento" />
<p:calendar id="dataLancamento"
value="#{livroBean.livro.dataLancamento.time}"
pattern="dd/MM/yyyy" timeZone="America/Sao_Paulo" effect="fold">
</p:calendar>
</p:panelGrid>
</p:fieldset>
<p:fieldset legend="Dados do Autor">
<p:panelGrid columns="4">
<p:outputLabel value="Selecione Autor:" for="autor" />
<p:selectOneMenu value="#{livroBean.autorId}" id="autor">
<f:selectItems value="#{livroBean.autores}" var="autor"
itemLabel="#{autor.nome}" itemValue="#{autor.id}" />
</p:selectOneMenu>
<p:commandButton value="Gravar Autor"
action="#{livroBean.gravarAutor}" process="@this autor"
update="tabelaAutores" />
<p:commandLink value="ou cadastrar novo autor"
action="#{livroBean.formAutor}" immediate="true" update="@all" />
</p:panelGrid>
<p:dataTable value="#{livroBean.autoresDoLivro}" var="autor"
id="tabelaAutores" emptyMessage="Nenhum autor">
<p:column>
<h:outputText value="#{autor.nome}" />
</p:column>
<p:column>
<p:commandLink value="X"
action="#{livroBean.removerAutorDoLivro(autor)}"
update="tabelaAutores" process="@this" />
</p:column>
</p:dataTable>
</p:fieldset>
<p:commandButton value="Gravar" action="#{livroBean.gravar}"
process="@form" update="@form :formTabelaLivros:tabelaLivros" />
<br />
</h:form>
Depois que colocar um id para o form no seu botão alterar da um update nesse form.
<p:commandButton value="alterar" icon="fa fa-fw fa-edit"
actionListener="#{livroBean.carregar(livro)}" update=":teste" // aqui um update/>
</p:column>
Testa e me manda a resposta.