Hi and thanks.
About the first question, I guess you would like to show the URL:
www.mydoman.com/road/to/users/first-lastname
In the browser but the real URL for the content is under the "less-friendly":
index.php?option=com_k2&view=itemlist&task=user&id=111:firstlastname&Itemid=1111
In this case you can create an internal redirect as follow:
From URL: ^/road/to/users/first-lastname$
To URL: {scheme}://{siteurl}/index.php?option=com_k2&view=itemlist&task=user&id=111:firstlastname&Itemid=1111
Request only: true (checked)
Redirect type: 200 (internal)
You can try the rule first with a 301 redirect to check it works, then you can change to 200. Consider that the internal redirect is an Enterprise feature.
About the second question, you can use a lot of macros and placeholders to build the destination step-by-step, taking parts of the source URL like the username, looking in the database with a lookup query, and use the result in the destination URL. This question leads me to think the first-lastname at the previous point is a variable. In this case the rule should be improved with macros.
Kind regards,
Luigi