Ad. 2) I'm not sure if I understand your question well. You can simply use and access most of portlet objects from JSP.
You can also pass your objects to jsp within a session or using RenderRequest.setAttribute (set object in portlet and get in jsp/servlet).
Ad. 3) You can do such thing if you extend JBossPortlet (instead of GenericPortlet). You pass method name which should be invoked in action phase as request parameter - default param name is "op" but it can be changed by overwriting .getDefaultOperation() method
Generally some more advenced stuff can be used when you extend JBossPortlet instead of GenericPortlet.
Look at ForumsPortlet class in forums module in portal sources.
You can easily pass things into jsp using custom taglib.
For example you do:
1) in portlet you fill DelegateContext object with your data - which have nested structure
2) you dispatch with passing DelegateContext to JSP like: