Have you checked if ADF is using the SAME instance of the object?
It might happen that the life of the class is slightly longer than the scope but that does not mean that the framework is using that instance. The object will stay alive until the garbage collection kicks in and removes the object.
Can you try to add a System.out.println("...") in the constructor of your bean. Normally on each request, it will create a new instance and ignore the other instances.
I checked as your suggest in the constructor of the bean. And the result constructor was call only one time at the first request. At the next request nothing to happen again with bean constructor. That mean the object bean still alive.
I can't explain why. In normally as you said it must create new instance for new request.
If you don't mind, Can you try to do an example and maybe will figure out something for resolve this problem?
It's correct behaviour if you are refreshing your page with F5. Basically request scope have different "concept" between Portal App and JSF Portlet bridge based app.
Portal request scope is based on HttpRequest and Portlet request scope is based on Portal Aware Request.
If you refresh your page then portal request scoped manage beans will be refreshed. However, your portlet request scope faces variables not.
Read http://docs.oracle.com/cd/E15919_01/wlp.1032/e14244/jsf.htm#CHDIHJGC for more info.
PD: I'm investigating if exists a JSF Portlet Bridge param or another configuration to achieve your requeriment.