Olha ai Lucas. Consegui! =)

O código ficou assim:
Classe componente Imagens:
@Component
public class Imagens {
	private File pastaImagens;
	public Imagens() {			  		 
		String pastaImagens = "/home/bruno/fotos";
		this.pastaImagens = new File(pastaImagens);   
		File destino = new File(pastaImagens);
		destino.mkdir();
	}
	public void salva(UploadedFile imagem, Imovel imovel) {		
		File destino = new File(pastaImagens, imovel.getIdImovel() + ".imagem");
		try {
			IOUtils.copyLarge(imagem.getFile(), new FileOutputStream(destino));
		} catch (IOException e) {
			throw new RuntimeException("Erro ao copiar imagem", e);
		}
	}
	
	public File mostra(Imovel imovel) {
		return new File(pastaImagens, imovel.getIdImovel() + ".imagem");
	}
}
Classe ImagensController (ficou bem enxuta):
@Resource
public class ImagensController {	
	private final Imagens imagens;
	private final Result result;
	
	public ImagensController(Imagens imagens, Result result) {	   
	    this.imagens = imagens;	 
	    this.result = result;
	}
	
	@Post 
	@Path("/imovel/{imovel.idImovel}/imagem")
	public void upload(Imovel imovel, final UploadedFile imagem) {	    
	    imagens.salva(imagem, imovel);
	    result.redirectTo(ImovelController.class).edita(imovel.getIdImovel());
	}
	
	 @Get 
	 @Path("/imovel/{imovel.idImovel}/imagem")
	 public File download(Imovel imovel) {
	     return imagens.mostra(imovel);
	 }
}
Após enviar a imagem, redireciona para a própria jsp de edição, o usuário clica em  e redireciona para a jsp de listagem.
Ao invés de criar o form de envio da imagem no formulário, criei na página de edição, ficou conforme está na apostila da Caelum:
<form action="<c:url value="/imovel/${imovel.idImovel }/imagem"/>" method="POST" enctype="multipart/form-data">
    <fieldset>
        <legend>Upload de Imagem</legend>
        <input type="file" name="imagem" />
        <button type="submit">Enviar</button>
    </fieldset>
</form>
Consegui de primeira, pois todo o código estava pronto, bastava remover aquela taglib do form do formulário.
Fica ai o código pra quem precisar. Claro que pode ser melhorado, falta ainda a parte de validação da imagem, pode incluir a parte de redimensionamento e também alguma forma de criar galeria de imagem, pois da forma que está só vai uma imagem, se o usuário clicar de novo no upload de imagem, vai sobrescrever a existente. =/
Na listagem estou usando o framework Displaytag, e para listar a imagem no grid fiz assim:
<display:table name="${imovelList}" pagesize="5" id="imovel" requestURI="/Imobiliaria/imovel/lista" export="true">
 <display:column>${imovel_rowNum}</display:column>
 <display:column title="Imagem"><img src="<c:url value="/imovel/${imovel.idImovel}/imagem"/>" width="100" height="100"/></display:column>  
  <display:column property="codImovel" title="Codigo" />
  <display:column property="titulo" title="Titulo" />
  <display:column property="bairro" title="Bairro" />
  <display:column property="valor" title="Valor" />
  <display:column property="area" title="Área" />   
  <display:column title="Remover"><a href="remove?idImovel=${imovel.idImovel}">remover</a></display:column>  
  <display:column title="Alterar"><a href="edita?idImovel=${imovel.idImovel}">alterar</a></display:column>  
</display:table>
Abraço!!!