Using a user’s full name in the URL
Marcus, I think you can use anything as an url for a user's page. In your case, I'd make a dynamic route like:

user/*


and assign it a template, for instance:

user/_entry


Within that template, all you'd have to do is lookup the user by the match found in the url. The variable matches contains the first-last part (the * part of your route). With that, the user should be easy to find:

{% set names = matches[1] | split('-') %}
{% set user = craft.users.firstName(names[0]).lastName(names[1]).first() %}

{% if user %}
    // Do with it what you want
{% endif %}


You'd have to be careful, however, that no two identical first- and last name combinations exists. The advantage of using the username is that it's always unique.