I think this is the best possible option to keep URL unique and user friendly.
But only disadvantage I see in this case is, user is forced to find his unique username. I mean that if a username is already taken then user will be pissed while signing up (If this repeats say a 100 times :P ).
one more method would be to let user have his fun with his username and you append a UID after the username. ex. somesite.com/crazyusername-xxxx123uid so user will be happy!., but again in this case URL will not be as user friendly as in first case.
generally sites that make heavy use of usernames as primary source of users identity go for the first one. best example would be online gaming sites!. second one would make sense if it is not the case ex. linkedin uses this type of URL for public pages.
So choose your battle and decide. hope this helps.