I think I know why the HelloDuke sample isn't working. However, I don't understand why it works in the MyFaces 1.2/bridge environment. Based on the following can you investigate why this works and let me know?
The Problem relates to JSP vs. JSF EL evaluation. The HelloDuke sample creates the UserNameBean object via a JSP tag at session scope. By spec (JSR 168) this object is added to the portletSession's APPLICATION_SCOPE. However the JSF EL expression (used in the InputText field) resolves via the ExternalContext. It relies on the ScopedAttributeResolver as the explicit (session) object is not named. The JSR 301 ExternalContext session impl resolves at PORTLET_SCOPE. The two expression evaluators are looking at different scopes. This issue/limitation is explicitly cited in the specification (chapter 6).
Because the jsp relies on scoped attribute lookup a fix would be to expand the Bridge's ELResolver to look the attribute up on the APPLICATION_SCOPE. Though this works for this sample, a potential problem of this is a property is prematurely found – obscures the correct usage/resolution. I will have to discuss with the EG to see if this "fix" should go into the spec.
In the meantime I am a little stumped as to why this sample works for the MyFaces original/built-in bridge. Its ExternalContext seems to be implemented like the 301 EC pointing to the portlet_scope. And there doesn't appear to be any portlet based EL resolver to handle the stuff there. Can you dig into this a little and determine which ELResolver is resolving the UserNameBean in the JSF expression?