Factories are used to create resource if they don't already exist. If you request a resource (using EL in a JSF page for example) then Seam will attempt to find the resource in of the scope contexts. If it can't find it then it'll try to create the resource - factories are one way of creating resources - so it'll call the factory and then store the result in a scope context.
It sounds like your storing the result of the factory in a long-running scope (eg. conversation, session or application) so Seam won't need to call the factory again because it can already find an instance of the resource in one of the scope contexts. Check the scope of the Seam component containing the factory method - use STATELESS or EVENT if you want it to refresh for different page requests.