I've changed usernames through phpMyAdmin with no ill effect. I think the only reason usernames can't be changed in WP is for some level of consistency. If I were to change my username here for example, it would free up bcworkz for someone else to use. That person would unknowingly inherit whatever reputation, good or bad, that I've built up here. Other users would not know bcworkz is no longer the same person.
Of course that's not an issue if there aren't usernames, though changing any label could have the same effect. At least with email, it's rather unlikely another user would sign up with an old email belonging to someone else, but possible.
I would auto generate some username to keep WP happy, just not display it anywhere on the front end. Hiding user names on the back end is possible in part, I'm not sure it's worth completely eradicating it. Focus on where it's most bothersome, like the user list table. I believe hiding that column is possible.
Hiding other locations could be more difficult, but there is always jQuery.