With regards to number 2 - have a look at this article: Automatically populate the Raise User attribute with the name of the user creating the record in Web Access
It explains how to get the auto population of the end user back in Web Access
A few answers for you, that I hope may help.
1) The way I would approach this and the way we approach this, is to have a decision point which checks whether the user logging the call is of type "End User" this works very well in our environment.
So it works like this
is User Type Analyst?
Create Assignment to Group Service Desk.........
is User SA?
Create assignment to Create User and Create User Group
Create assignment to Group Service Desk
2) We currently do this in our Self Service Portal. All you have to do is:
- To create a query to show user details that you wish to show, using the criteria of User\Tile "is me"
- Add that query to the incident window that you are using in Self Service
See the below screenshot for an example