Think of it in this way:
When you annotate a Seam component with @Out, you are telling Seam that you want to store this component under some scope.
Remember those lines:
PurchaseOrder po = new PurchaseOrder();
session.setAttribute("purchaseOrder", po);
When you are using @Out, you are doing the same thing.
Alternativley, when you are using @In, you are telling Seam you want to get the object from a desired scope (context in Seam parlance)
Remember this line:
session.getAttribute("purchaseOrder");
?
In your case, yes sure, you can remove @Out from person declaration but you can't write this in your view page:
<h
utputText value="#{person.age}" />
Because it is not stored under a scope, you have to write:
<h
utputText value="#{helloAction.person.age}" />
Actually, you have to avoid the excessive use bijection as it could harm the performance.